Allow setting search bar title

This commit is contained in:
FooIbar committed 2023-11-16 12:47:33 +08:00
1 parent e32a7b61b6
commit 0c54e8b0b3
2 files changed
+13 -5

No files matched your search

@@ -149,6 +149,7 @@ fun SearchBar(
onActiveChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
title: @Composable (() -> Unit)? = null,
placeholder: @Composable (() -> Unit)? = null,
leadingIcon: @Composable (() -> Unit)? = null,
trailingIcon: @Composable (() -> Unit)? = null,
@@ -277,6 +278,7 @@ fun SearchBar(
onActiveChange = onActiveChange,
modifier = Modifier.padding(paddingValues = animatedInputFieldPadding),
enabled = enabled,
label = title.takeUnless { active || animationProgress.value > 0 || state.text.isNotEmpty() },
placeholder = placeholder,
leadingIcon = leadingIcon,
trailingIcon = trailingIcon,
@@ -387,6 +389,7 @@ private fun SearchBarInputField(
onActiveChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
label: @Composable (() -> Unit)? = null,
placeholder: @Composable (() -> Unit)? = null,
leadingIcon: @Composable (() -> Unit)? = null,
trailingIcon: @Composable (() -> Unit)? = null,
@@ -427,6 +430,7 @@ private fun SearchBarInputField(
singleLine = true,
visualTransformation = VisualTransformation.None,
interactionSource = interactionSource,
label = label,
placeholder = placeholder,
leadingIcon = leadingIcon?.let { leading ->
{
@@ -105,8 +105,9 @@ suspend fun SearchDao.suggestions(prefix: String, limit: Int) =
@Composable
fun SearchBarScreen(
title: String? = null,
searchFieldState: TextFieldState,
searchFieldHint: String = "",
searchFieldHint: String? = null,
showSearchFab: Boolean = false,
onApplySearch: (String) -> Unit,
onSearchExpanded: () -> Unit,
@@ -249,7 +250,8 @@ fun SearchBarScreen(
}
active = it
},
placeholder = { Text(searchFieldHint) },
title = title?.let { { Text(it) } },
placeholder = searchFieldHint?.let { { Text(it) } },
leadingIcon = {
if (active) {
IconButton(onClick = { hideSearchView() }) {
@@ -327,7 +329,8 @@ abstract class SearchBarScene : BaseScene() {
private val searchFieldState = TextFieldState()
private var mSuggestionProvider: SuggestionProvider? = null
private var onApplySearch: (String) -> Unit = {}
private var searchFieldHint by mutableStateOf("")
private var searchFieldHint by mutableStateOf<String?>(null)
private var searchBarTitle by mutableStateOf<String?>(null)
var showSearchFab by mutableStateOf(false)
protected abstract val fabLayout: View
@@ -350,6 +353,7 @@ abstract class SearchBarScene : BaseScene() {
val fabPadding = with(density) { 16.dp.roundToPx() }
val margin = with(density) { 8.dp.roundToPx() }
SearchBarScreen(
title = searchBarTitle,
searchFieldState = searchFieldState,
searchFieldHint = searchFieldHint,
showSearchFab = showSearchFab,
@@ -452,7 +456,7 @@ abstract class SearchBarScene : BaseScene() {
open fun onSearchViewHidden() {}
fun setTitle(title: String?) {
// TODO
searchBarTitle = title
}
fun setSearchBarText(text: String?) {
@@ -464,7 +468,7 @@ abstract class SearchBarScene : BaseScene() {
}
fun setSearchBarHint(hint: String?) {
searchFieldHint = hint.orEmpty()
searchFieldHint = hint
}
fun setOnApplySearch(lambda: (String) -> Unit) {