diff --git a/mobile/packages/ui/lib/src/components/form.dart b/mobile/packages/ui/lib/src/components/form.dart index 4d0344ae6b..31e9d01980 100644 --- a/mobile/packages/ui/lib/src/components/form.dart +++ b/mobile/packages/ui/lib/src/components/form.dart @@ -10,9 +10,16 @@ class ImmichFormController extends ChangeNotifier { FutureOr Function()? onSubmit; final formKey = GlobalKey(); + bool _isDisposed = false; bool _isLoading = false; bool get isLoading => _isLoading; + @override + void dispose() { + _isDisposed = true; + super.dispose(); + } + Future submit() async { if (_isLoading) { return; @@ -27,7 +34,9 @@ class ImmichFormController extends ChangeNotifier { await onSubmit?.call(); } finally { _isLoading = false; - notifyListeners(); + if (!_isDisposed) { + notifyListeners(); + } } } } @@ -38,13 +47,7 @@ class ImmichForm extends StatefulWidget { final String? submitText; final IconData? submitIcon; - const ImmichForm({ - super.key, - this.onSubmit, - this.submitText, - this.submitIcon, - required this.builder, - }); + const ImmichForm({super.key, this.onSubmit, this.submitText, this.submitIcon, required this.builder}); @override State createState() => _ImmichFormState();