This commit is contained in:
2dust committed 2026-07-31 10:54:16 +08:00
1 parent e549000e5a
commit 2c1efde450
1 file changed
+11 -3
@@ -198,7 +198,8 @@ fun ProxyChainScreen(
onDelete: () -> Unit onDelete: () -> Unit
) { ) {
var remarks by rememberSaveable { mutableStateOf(initialRemarks) } var remarks by rememberSaveable { mutableStateOf(initialRemarks) }
var members by rememberSaveable { mutableStateOf(initialMembers.toMutableList()) } var members by rememberSaveable { mutableStateOf(initialMembers) }
var memberKeys by rememberSaveable { mutableStateOf(List(initialMembers.size) { UUID.randomUUID().toString() }) }
var showProfileDeleteConfirm by remember { mutableStateOf(false) } var showProfileDeleteConfirm by remember { mutableStateOf(false) }
var memberToDeleteIndex by rememberSaveable { mutableStateOf<Int?>(null) } var memberToDeleteIndex by rememberSaveable { mutableStateOf<Int?>(null) }
val showDelete = editGuid.isNotEmpty() && !isRunning val showDelete = editGuid.isNotEmpty() && !isRunning
@@ -207,6 +208,7 @@ fun ProxyChainScreen(
val reorderableState = rememberReorderableLazyListState(lazyListState) { from, to -> val reorderableState = rememberReorderableLazyListState(lazyListState) { from, to ->
val fromIndex = memberKeys.indexOf(from.key) val fromIndex = memberKeys.indexOf(from.key)
val toIndex = memberKeys.indexOf(to.key) val toIndex = memberKeys.indexOf(to.key)
if (fromIndex != -1 && toIndex != -1) {
val reordered = members.toMutableList() val reordered = members.toMutableList()
val reorderedKeys = memberKeys.toMutableList() val reorderedKeys = memberKeys.toMutableList()
if (reordered.moveItem(fromIndex, toIndex)) { if (reordered.moveItem(fromIndex, toIndex)) {
@@ -215,6 +217,7 @@ fun ProxyChainScreen(
memberKeys = reorderedKeys memberKeys = reorderedKeys
} }
} }
}
Scaffold( Scaffold(
contentWindowInsets = ScaffoldDefaults.contentWindowInsets, contentWindowInsets = ScaffoldDefaults.contentWindowInsets,
@@ -308,8 +311,12 @@ fun ProxyChainScreen(
modifier = Modifier.weight(1f) modifier = Modifier.weight(1f)
) )
IconButton(onClick = { IconButton(onClick = {
if (member.isBlank()) members = members.toMutableList().also { it.removeAt(index) } if (member.isBlank()) {
else memberToDeleteIndex = index members = members.toMutableList().also { it.removeAt(index) }
memberKeys = memberKeys.toMutableList().also { it.removeAt(index) }
} else {
memberToDeleteIndex = index
}
}) { }) {
Icon( Icon(
painterResource(R.drawable.ic_delete_24dp), painterResource(R.drawable.ic_delete_24dp),
@@ -335,6 +342,7 @@ fun ProxyChainScreen(
message = stringResource(R.string.confirm_delete_proxy_chain_member), message = stringResource(R.string.confirm_delete_proxy_chain_member),
onConfirm = { onConfirm = {
members = members.toMutableList().also { it.removeAt(index) } members = members.toMutableList().also { it.removeAt(index) }
memberKeys = memberKeys.toMutableList().also { it.removeAt(index) }
memberToDeleteIndex = null memberToDeleteIndex = null
}, },
onDismiss = { memberToDeleteIndex = null } onDismiss = { memberToDeleteIndex = null }