Clearing the room list search clears the search term too (#5603)
This commit is contained in:
committed by
GitHub
parent
6008af36ec
commit
009ceb8704
@@ -25,6 +25,7 @@ import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.drawBehind
|
||||
@@ -33,7 +34,6 @@ import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.TextRange
|
||||
import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -111,7 +111,11 @@ private fun RoomListSearchContent(
|
||||
},
|
||||
navigationIcon = { BackButton(onClick = ::onBackButtonClick) },
|
||||
title = {
|
||||
var value by remember { mutableStateOf(TextFieldValue(state.query)) }
|
||||
// TODO replace `state.query` with TextFieldState when it's available for M3 TextField
|
||||
// The stateSaver will keep the selection state when returning to this UI
|
||||
var value by rememberSaveable(stateSaver = TextFieldValue.Saver) {
|
||||
mutableStateOf(TextFieldValue(state.query))
|
||||
}
|
||||
|
||||
val focusRequester = remember { FocusRequester() }
|
||||
FilledTextField(
|
||||
@@ -137,6 +141,8 @@ private fun RoomListSearchContent(
|
||||
if (value.text.isNotEmpty()) {
|
||||
IconButton(onClick = {
|
||||
state.eventSink(RoomListSearchEvents.ClearQuery)
|
||||
// Clear local state too
|
||||
value = value.copy(text = "")
|
||||
}) {
|
||||
Icon(
|
||||
imageVector = CompoundIcons.Close(),
|
||||
@@ -148,7 +154,6 @@ private fun RoomListSearchContent(
|
||||
)
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
value = value.copy(selection = TextRange(value.text.length))
|
||||
if (!focusRequester.restoreFocusedChild()) {
|
||||
focusRequester.requestFocus()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user