diff --git a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt index 3ea19c6d..f84fe5f1 100644 --- a/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt +++ b/presentation/src/androidMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt @@ -7,11 +7,15 @@ package ca.gosyer.jui.ui.base.theme import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable import ca.gosyer.jui.uicore.components.ScrollbarStyle actual object ThemeScrollbarStyle { + private val defaultScrollbarStyle = ScrollbarStyle() + + @Stable @Composable actual fun getScrollbarStyle(): ScrollbarStyle { - return ScrollbarStyle() + return defaultScrollbarStyle } } diff --git a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt index 335874f1..34db75b3 100644 --- a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt +++ b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt @@ -7,9 +7,11 @@ package ca.gosyer.jui.ui.base.theme import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable import ca.gosyer.jui.uicore.components.ScrollbarStyle expect object ThemeScrollbarStyle { + @Stable @Composable fun getScrollbarStyle(): ScrollbarStyle } diff --git a/presentation/src/desktopMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt b/presentation/src/desktopMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt index 83db3596..c1004263 100644 --- a/presentation/src/desktopMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt +++ b/presentation/src/desktopMain/kotlin/ca/gosyer/jui/ui/base/theme/ThemeScrollbarStyle.kt @@ -8,10 +8,12 @@ package ca.gosyer.jui.ui.base.theme import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.Stable import androidx.compose.ui.unit.dp import ca.gosyer.jui.uicore.components.ScrollbarStyle actual object ThemeScrollbarStyle { + @Stable @Composable actual fun getScrollbarStyle(): ScrollbarStyle { return androidx.compose.foundation.ScrollbarStyle( diff --git a/ui-core/src/androidMain/kotlin/ca/gosyer/jui/uicore/components/AndroidScrollbar.kt b/ui-core/src/androidMain/kotlin/ca/gosyer/jui/uicore/components/AndroidScrollbar.kt index 6efb6c35..49d7a16c 100644 --- a/ui-core/src/androidMain/kotlin/ca/gosyer/jui/uicore/components/AndroidScrollbar.kt +++ b/ui-core/src/androidMain/kotlin/ca/gosyer/jui/uicore/components/AndroidScrollbar.kt @@ -10,18 +10,22 @@ import androidx.compose.foundation.ScrollState import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Modifier -actual interface ScrollbarAdapter { - fun noop() -} +actual interface ScrollbarAdapter +object AndroidScrollbarAdapter : ScrollbarAdapter + +@Immutable actual class ScrollbarStyle -actual val LocalScrollbarStyle: ProvidableCompositionLocal = staticCompositionLocalOf { ca.gosyer.jui.uicore.components.ScrollbarStyle() } +private val scrollbarStyle = ScrollbarStyle() + +actual val LocalScrollbarStyle: ProvidableCompositionLocal = staticCompositionLocalOf { scrollbarStyle } @Composable internal actual fun RealVerticalScrollbar( @@ -46,9 +50,7 @@ actual fun rememberScrollbarAdapter( scrollState: ScrollState ): ScrollbarAdapter { return remember { - object : ScrollbarAdapter { - override fun noop() {} - } + AndroidScrollbarAdapter } } @@ -57,8 +59,6 @@ actual fun rememberScrollbarAdapter( scrollState: LazyListState, ): ScrollbarAdapter { return remember { - object : ScrollbarAdapter { - override fun noop() {} - } + AndroidScrollbarAdapter } }