diff --git a/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/LicensesDrawer.kt b/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/LicensesDrawer.kt index 1f7dc36..bc3f1cb 100644 --- a/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/LicensesDrawer.kt +++ b/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/LicensesDrawer.kt @@ -1,11 +1,18 @@ package dev.inmo.kmppscriptbuilder.core.ui import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.Button import androidx.compose.material.Divider import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.unit.dp import dev.inmo.kmppscriptbuilder.core.ui.utils.CommonText import dev.inmo.kmppscriptbuilder.core.ui.utils.CommonTextField @@ -14,17 +21,29 @@ import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer actual object LicensesDrawer : Drawer { @Composable override fun LicensesView.draw() { - if (searchFieldFocused.value) { - Column { - licensesOffersToShow.value.forEach { - Column(Modifier.padding(16.dp, 8.dp, 8.dp, 8.dp)) { - CommonText(it.title) { - itemsList.add(it.toLicenseState()) - licenseSearchFilter = "" - } - Divider() + val internalFocusState = remember { mutableStateOf(false) } + if (searchFieldFocused.value || internalFocusState.value) { + } + Column( + Modifier + .let { + if (searchFieldFocused.value) { + it.heightIn(max = 128.dp) + } else { + it.height(0.dp) } } + .verticalScroll(rememberScrollState()) + ) { + licensesOffersToShow.value.forEach { + Column(Modifier.padding(16.dp, 8.dp, 8.dp, 8.dp)) { + CommonText(it.title) { + itemsList.add(it.toLicenseState()) + licenseSearchFilter = "" + internalFocusState.value = false + } + Divider() + } } } } diff --git a/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/utils/ActualUIElements.kt b/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/utils/ActualUIElements.kt index 7788a2d..77a026e 100644 --- a/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/utils/ActualUIElements.kt +++ b/core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/utils/ActualUIElements.kt @@ -12,6 +12,7 @@ import androidx.compose.material.Divider import androidx.compose.material.OutlinedTextField import androidx.compose.material.Switch import androidx.compose.material.Text +import androidx.compose.material.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -73,7 +74,11 @@ actual fun CommonTextField( @Composable actual fun CommonText(text: String, onClick: (() -> Unit)?) { - Text(text, modifier = Modifier.run { onClick ?.let { clickable(onClick = it) } ?: this }) + onClick ?.let { + TextButton(it) { + Text(text) + } + } ?: Text(text) } @Composable