fix: key dictionary list items by path

Swipe state follows its row instead of migrating to a neighbor on
delete or reorder.
This commit is contained in:
2026-09-04 02:05:59 +08:00
parent 628813c3f6
commit d892427a3f
@@ -11,6 +11,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.key
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberUpdatedState import androidx.compose.runtime.rememberUpdatedState
@@ -263,12 +264,14 @@ private fun DictionaryListSection(
verticalArrangement = Arrangement.spacedBy(4.dp) verticalArrangement = Arrangement.spacedBy(4.dp)
) { ) {
dictionaries.forEach { dictionary -> dictionaries.forEach { dictionary ->
DictionaryListItem( key(dictionary.path) {
dictionary = dictionary, DictionaryListItem(
onToggle = { onToggleDictionary(dictionary.path) }, dictionary = dictionary,
onDelete = { onDeleteDictionary(dictionary) }, onToggle = { onToggleDictionary(dictionary.path) },
isDeleteBlocked = isDeleteBlocked onDelete = { onDeleteDictionary(dictionary) },
) isDeleteBlocked = isDeleteBlocked
)
}
} }
} }
} }