Setup UX: allow Start w/ unsaved changes; hide delete for built-ins

This commit is contained in:
Tretzi
2026-04-15 09:44:17 -05:00
parent 14dd04413b
commit 50272cd6a6
2 changed files with 30 additions and 19 deletions

View File

@@ -319,21 +319,23 @@ fun App(vm: MainViewModel = viewModel(), billingManager: solutions.tretter.mindm
modifier = Modifier.size(38.dp)
)
}
Box(
modifier = Modifier
.size(24.dp)
.clickable {
confirmDeleteProgramId = p.id
confirmDeleteProgramName = p.name
},
contentAlignment = Alignment.Center
) {
Icon(
imageVector = Icons.Filled.Delete,
contentDescription = "Delete ${p.name}",
tint = Color(0xFFFF5252),
modifier = Modifier.fillMaxSize()
)
if (p.id in ui.deletableProgramIds) {
Box(
modifier = Modifier
.size(24.dp)
.clickable {
confirmDeleteProgramId = p.id
confirmDeleteProgramName = p.name
},
contentAlignment = Alignment.Center
) {
Icon(
imageVector = Icons.Filled.Delete,
contentDescription = "Delete ${p.name}",
tint = Color(0xFFFF5252),
modifier = Modifier.fillMaxSize()
)
}
}
}
}
@@ -527,12 +529,14 @@ fun SetupScreen(
Row(horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.fillMaxWidth()) {
if (hasUnsavedChanges) {
OutlinedButton(onClick = { vm.saveCurrentProgram(programName) }, modifier = Modifier.weight(1f).height(52.dp)) {
OutlinedButton(
onClick = { vm.saveCurrentProgram(programName) },
modifier = Modifier.weight(1f).height(52.dp)
) {
Text("Save")
}
} else {
Button(onClick = onStart, modifier = Modifier.weight(1f).height(52.dp)) { Text("Start") }
}
Button(onClick = onStart, modifier = Modifier.weight(1f).height(52.dp)) { Text("Start") }
}
if (ui.error != null) Text(ui.error!!, color = if (ui.error!!.startsWith("Saved")) Color(0xFF72E39A) else MaterialTheme.colorScheme.error)
Spacer(Modifier.height(8.dp))