Disable circles edits and show snackbar message when done

Addresses #75
This commit is contained in:
Hank Grabowski 2024-06-28 10:12:14 -04:00
parent 45c2b3b490
commit 5b8320d8c4

View file

@ -160,36 +160,43 @@ class _UserProfileScreenState extends State<UserProfileScreen> {
return <CircleData>{};
});
myCircles.sort((g1, g2) => g1.name.compareTo(g2.name));
final circlesWidgets = myCircles.map((g) {
return CheckboxListTile(
title: Text(g.name),
value: usersCircles.contains(g),
onChanged: (bool? value) async {
if (isUpdating) {
return;
}
onChanged: isUpdating
? null
: (bool? value) async {
if (isUpdating) {
return;
}
final isAdding = value == true;
final confirm = await showYesNoDialog(
context,
isAdding
? 'Add user to ${g.name}'
: 'Remove user from ${g.name}');
if (confirm != true) {
return;
}
setState(() {
isUpdating = true;
});
if (isAdding) {
await manager.addUserToCircle(g, profile);
} else {
await manager.removeUserFromCircle(g, profile);
}
setState(() {
isUpdating = false;
});
},
final isAdding = value == true;
final confirm = await showYesNoDialog(
context,
isAdding
? 'Add user to ${g.name}'
: 'Remove user from ${g.name}');
if (confirm != true) {
return;
}
setState(() {
isUpdating = true;
});
if (isAdding) {
await manager.addUserToCircle(g, profile);
} else {
await manager.removeUserFromCircle(g, profile);
}
if (mounted) {
buildSnackbar(context, "User's Circles Updated");
}
setState(() {
isUpdating = false;
});
},
);
}).toList();
return Column(