fix(ui): guard ref.read with mounted checks in _delete after async gaps
After showDialog and after the two repo awaits (getEmail/deleteEmail), the widget may have been disposed — calling ref.read on a disposed ConsumerStatefulElement throws "Cannot use 'ref' after the widget was disposed." Add if (!mounted) return; at both points. Fixes #80 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
7aa9ddbe07
commit
ebff60a4d4
@@ -261,6 +261,7 @@ class _EmailMessageCardState extends ConsumerState<_EmailMessageCard> {
|
||||
],
|
||||
),
|
||||
);
|
||||
if (!mounted) return;
|
||||
if (confirmed == true) {
|
||||
final repo = ref.read(emailRepositoryProvider);
|
||||
// Fetch data first for IMAP undo support
|
||||
@@ -268,6 +269,7 @@ class _EmailMessageCardState extends ConsumerState<_EmailMessageCard> {
|
||||
|
||||
final destPath = await repo.deleteEmail(widget.email.id);
|
||||
|
||||
if (!mounted) return;
|
||||
if (original != null) {
|
||||
unawaited(
|
||||
ref.read(undoServiceProvider.notifier).pushAction(
|
||||
|
||||
Reference in New Issue
Block a user