fix: clear focus before deleting `ignore_incoming`

closes #872
pull/876/head
andrekir 2024-02-26 19:22:12 -03:00
rodzic 89438f3553
commit 1990dfbabf
1 zmienionych plików z 4 dodań i 0 usunięć

Wyświetl plik

@ -20,6 +20,7 @@ import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
@ -41,6 +42,7 @@ inline fun <reified T> EditListPreference(
crossinline onValuesChanged: (List<T>) -> Unit, crossinline onValuesChanged: (List<T>) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val focusManager = LocalFocusManager.current
val listState = remember(list) { mutableStateListOf<T>().apply { addAll(list) } } val listState = remember(list) { mutableStateListOf<T>().apply { addAll(list) } }
Column(modifier = modifier) { Column(modifier = modifier) {
@ -65,6 +67,7 @@ inline fun <reified T> EditListPreference(
trailingIcon = { trailingIcon = {
IconButton( IconButton(
onClick = { onClick = {
focusManager.clearFocus()
listState.removeAt(index) listState.removeAt(index)
onValuesChanged(listState) onValuesChanged(listState)
} }
@ -109,6 +112,7 @@ inline fun <reified T> EditListPreference(
trailingIcon = { trailingIcon = {
IconButton( IconButton(
onClick = { onClick = {
focusManager.clearFocus()
listState.removeAt(index) listState.removeAt(index)
onValuesChanged(listState) onValuesChanged(listState)
} }