...
This commit is contained in:
		
							
								
								
									
										3
									
								
								devtools_options.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								devtools_options.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
description: This file stores settings for Dart & Flutter DevTools.
 | 
			
		||||
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
 | 
			
		||||
extensions:
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -172,10 +172,10 @@ packages:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: meta
 | 
			
		||||
      sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
 | 
			
		||||
      sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
 | 
			
		||||
      url: "https://pub.dev"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.16.0"
 | 
			
		||||
    version: "1.17.0"
 | 
			
		||||
  nested:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@@ -393,10 +393,10 @@ packages:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: test_api
 | 
			
		||||
      sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
 | 
			
		||||
      sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
 | 
			
		||||
      url: "https://pub.dev"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "0.7.6"
 | 
			
		||||
    version: "0.7.7"
 | 
			
		||||
  typed_data:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user