...
This commit is contained in:
@@ -55,8 +55,17 @@ class _LayoutDetailPageState extends State<LayoutDetailPage> {
|
||||
|
||||
Future<void> _refreshLayout() async {
|
||||
final updated = await apiService.getStoreLayoutById(_layout.id);
|
||||
if (updated != null && mounted) {
|
||||
if (!mounted) return;
|
||||
if (updated != null) {
|
||||
setState(() => _layout = updated);
|
||||
return;
|
||||
}
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Dieses Layout ist nicht mehr verfügbar.')),
|
||||
);
|
||||
if (mounted) {
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -627,12 +627,11 @@ class _ListDetailPageState extends State<ListDetailPage> {
|
||||
).showSnackBar(SnackBar(content: Text('"${item.name}" gelöscht.')));
|
||||
}
|
||||
} catch (e) {
|
||||
if (!mounted) return;
|
||||
setState(() => _items.insert(index, item));
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text('Fehler beim Löschen: $e')));
|
||||
}
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(SnackBar(content: Text('Fehler beim Löschen: $e')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,12 +641,11 @@ class _ListDetailPageState extends State<ListDetailPage> {
|
||||
try {
|
||||
await apiService.updateItem(item.id, checked: item.checked);
|
||||
} catch (e) {
|
||||
if (!mounted) return;
|
||||
setState(() => item.checked = oldState);
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Fehler beim Aktualisieren: $e')),
|
||||
);
|
||||
}
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Fehler beim Aktualisieren: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,9 @@ class _LoginPageState extends State<LoginPage> {
|
||||
await apiService.login(email, password);
|
||||
}
|
||||
} catch (e) {
|
||||
setState(() => _error = e.toString());
|
||||
if (mounted) {
|
||||
setState(() => _error = e.toString());
|
||||
}
|
||||
} finally {
|
||||
if (mounted) {
|
||||
setState(() => _loading = false);
|
||||
@@ -38,6 +40,13 @@ class _LoginPageState extends State<LoginPage> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_emailCtl.dispose();
|
||||
_pwCtl.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
@@ -80,16 +80,22 @@ class _MembersDialogState extends State<MembersDialog> {
|
||||
final List<String> newMembers = [...widget.list.members, user.id];
|
||||
await apiService.updateList(widget.list.id, members: newMembers);
|
||||
|
||||
setState(() {
|
||||
widget.list.members = newMembers;
|
||||
_userEmails[user.id] = user.data['email'] as String;
|
||||
_emailCtl.clear();
|
||||
_hasChanges = true;
|
||||
});
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
widget.list.members = newMembers;
|
||||
_userEmails[user.id] = user.data['email'] as String;
|
||||
_emailCtl.clear();
|
||||
_hasChanges = true;
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
setState(() => _error = e.toString());
|
||||
if (mounted) {
|
||||
setState(() => _error = e.toString());
|
||||
}
|
||||
} finally {
|
||||
setState(() => _isLoading = false);
|
||||
if (mounted) {
|
||||
setState(() => _isLoading = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,17 +134,29 @@ class _MembersDialogState extends State<MembersDialog> {
|
||||
.toList();
|
||||
await apiService.updateList(widget.list.id, members: newMembers);
|
||||
|
||||
setState(() {
|
||||
widget.list.members = newMembers;
|
||||
_hasChanges = true;
|
||||
});
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
widget.list.members = newMembers;
|
||||
_hasChanges = true;
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
setState(() => _error = e.toString());
|
||||
if (mounted) {
|
||||
setState(() => _error = e.toString());
|
||||
}
|
||||
} finally {
|
||||
setState(() => _isLoading = false);
|
||||
if (mounted) {
|
||||
setState(() => _isLoading = false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_emailCtl.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final bool isOwner = widget.list.owner == apiService.userId;
|
||||
|
||||
Reference in New Issue
Block a user