mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 19:10:43 +00:00
Clearing the room list search clears the search term too (#5603)
This commit is contained in:
committed by
GitHub
parent
0745f308c5
commit
51bf99cfba
+8
-3
@@ -25,6 +25,7 @@ import androidx.compose.runtime.LaunchedEffect
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.drawBehind
|
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.geometry.Offset
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.TextRange
|
|
||||||
import androidx.compose.ui.text.input.TextFieldValue
|
import androidx.compose.ui.text.input.TextFieldValue
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -111,7 +111,11 @@ private fun RoomListSearchContent(
|
|||||||
},
|
},
|
||||||
navigationIcon = { BackButton(onClick = ::onBackButtonClick) },
|
navigationIcon = { BackButton(onClick = ::onBackButtonClick) },
|
||||||
title = {
|
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() }
|
val focusRequester = remember { FocusRequester() }
|
||||||
FilledTextField(
|
FilledTextField(
|
||||||
@@ -137,6 +141,8 @@ private fun RoomListSearchContent(
|
|||||||
if (value.text.isNotEmpty()) {
|
if (value.text.isNotEmpty()) {
|
||||||
IconButton(onClick = {
|
IconButton(onClick = {
|
||||||
state.eventSink(RoomListSearchEvents.ClearQuery)
|
state.eventSink(RoomListSearchEvents.ClearQuery)
|
||||||
|
// Clear local state too
|
||||||
|
value = value.copy(text = "")
|
||||||
}) {
|
}) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = CompoundIcons.Close(),
|
imageVector = CompoundIcons.Close(),
|
||||||
@@ -148,7 +154,6 @@ private fun RoomListSearchContent(
|
|||||||
)
|
)
|
||||||
|
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
value = value.copy(selection = TextRange(value.text.length))
|
|
||||||
if (!focusRequester.restoreFocusedChild()) {
|
if (!focusRequester.restoreFocusedChild()) {
|
||||||
focusRequester.requestFocus()
|
focusRequester.requestFocus()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user