Skip to content

Instantly share code, notes, and snippets.

@CXwudi
CXwudi / AdaptiveDetailsHorizontalChildPanelsLayout.kt
Created May 19, 2025 23:44
A custom implementation of ChildPanelsLayout from Decompose ChildPanels navigation where the detail page is adaptive but the other two have fixed size
package mikufan.cx.conduit.frontend.ui.common
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.layout.Measurable
import androidx.compose.ui.layout.MeasurePolicy
import androidx.compose.ui.layout.MeasureResult
@CXwudi
CXwudi / ChildPanelsBackHandler.kt
Created May 19, 2025 23:31
Decompose ChildPanels with Customizable Back Handling
@file:OptIn(ExperimentalDecomposeApi::class)
package mikufan.cx.conduit.frontend.logic.component.custom
import com.arkivanov.decompose.ExperimentalDecomposeApi
import com.arkivanov.decompose.router.panels.ChildPanelsMode
import com.arkivanov.decompose.router.panels.Panels
/**
* A functional interface for handling back button presses in child panels.
@CXwudi
CXwudi / DecomposeValueUtil.kt
Last active October 23, 2024 17:13
Conversion between Decompose Value and Flow
package mikufan.cx.conduit.frontend.logic.component.util
import com.arkivanov.decompose.Cancellation
import com.arkivanov.decompose.value.Value
import com.arkivanov.mvikotlin.core.rx.observer
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ExperimentalForInheritanceCoroutinesApi
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.FlowCollector
ikuuu.me
dog.ssrdog.com