Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.material3.rememberBottomSheetScaffoldState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand All @@ -65,6 +65,7 @@ import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.unit.dp
import github.tornaco.android.thanos.module.compose.common.theme.TypographyDefaults

Expand Down Expand Up @@ -194,7 +195,7 @@ private fun SearchBar(searchBarState: SearchBarState) {
SearchTextField(searchBarState, focusRequester)
}

SideEffect {
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
}
Expand All @@ -206,7 +207,7 @@ private fun SearchTextField(searchBarState: SearchBarState, focusRequester: Focu
modifier = Modifier
.fillMaxWidth()
.focusRequester(focusRequester),
value = searchBarState.keyword,
value = searchBarState.textFieldValue,
colors = TextFieldDefaults.colors(
focusedContainerColor = Color.Transparent,
unfocusedContainerColor = Color.Transparent,
Expand All @@ -226,7 +227,7 @@ private fun SearchTextField(searchBarState: SearchBarState, focusRequester: Focu
}
},
onValueChange = {
searchBarState.inputKeyword(it)
searchBarState.updateTextFieldValue(it)
})
}

Expand All @@ -241,11 +242,16 @@ class SearchBarState {
private var _showSearchBar by mutableStateOf(false)
val showSearchBar get() = _showSearchBar

private var _keyword by mutableStateOf("")
val keyword get() = _keyword
private var _textFieldValue by mutableStateOf(TextFieldValue(""))
val textFieldValue get() = _textFieldValue
val keyword get() = _textFieldValue.text

fun updateTextFieldValue(value: TextFieldValue) {
_textFieldValue = value
}

fun inputKeyword(value: String) {
_keyword = value
updateTextFieldValue(TextFieldValue(text = value))
}

fun closeSearchBar() {
Expand Down Expand Up @@ -293,4 +299,4 @@ fun ThanoxBottomSheetScaffold(
}
}
)
}
}