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
) {
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 memberToDeleteIndex by rememberSaveable { mutableStateOf<Int?>(null) }
val showDelete = editGuid.isNotEmpty() && !isRunning
@@ -207,6 +208,7 @@ fun ProxyChainScreen(
val reorderableState = rememberReorderableLazyListState(lazyListState) { from, to ->
val fromIndex = memberKeys.indexOf(from.key)
val toIndex = memberKeys.indexOf(to.key)
if (fromIndex != -1 && toIndex != -1) {
val reordered = members.toMutableList()
val reorderedKeys = memberKeys.toMutableList()
if (reordered.moveItem(fromIndex, toIndex)) {
@@ -215,6 +217,7 @@ fun ProxyChainScreen(
memberKeys = reorderedKeys
}
}
}
Scaffold(
contentWindowInsets = ScaffoldDefaults.contentWindowInsets,
@@ -308,8 +311,12 @@ fun ProxyChainScreen(
modifier = Modifier.weight(1f)
)
IconButton(onClick = {
if (member.isBlank()) members = members.toMutableList().also { it.removeAt(index) }
else memberToDeleteIndex = index
if (member.isBlank()) {
members = members.toMutableList().also { it.removeAt(index) }
memberKeys = memberKeys.toMutableList().also { it.removeAt(index) }
} else {
memberToDeleteIndex = index
}
}) {
Icon(
painterResource(R.drawable.ic_delete_24dp),
@@ -335,6 +342,7 @@ fun ProxyChainScreen(
message = stringResource(R.string.confirm_delete_proxy_chain_member),
onConfirm = {
members = members.toMutableList().also { it.removeAt(index) }
memberKeys = memberKeys.toMutableList().also { it.removeAt(index) }
memberToDeleteIndex = null
},
onDismiss = { memberToDeleteIndex = null }