feat(R4): dismissible sync error banner in email list #23

Merged
guettlibot merged 1 commits from task/r4-sync-error-banner into main 2026-05-13 21:14:45 +00:00
guettlibot commented 2026-05-13 21:11:15 +00:00 (Migrated from codeberg.org)

When the most recent background sync fails, a MaterialBanner now appears at the top of the email list showing the error with Retry and Dismiss actions. It disappears automatically once a subsequent sync succeeds.

Changes:

  • SyncLogRepository.observeLastError() — lightweight stream returning the last error message or null when the last sync was successful.
  • syncLastErrorProviderStreamProvider.family wiring it into Riverpod.
  • EmailListScreen — new _buildSyncErrorBanner() widget; tracks dismissed error per session so users aren't nagged after dismissing.

Closes part of #19

When the most recent background sync fails, a `MaterialBanner` now appears at the top of the email list showing the error with **Retry** and **Dismiss** actions. It disappears automatically once a subsequent sync succeeds. **Changes:** - `SyncLogRepository.observeLastError()` — lightweight stream returning the last error message or null when the last sync was successful. - `syncLastErrorProvider` — `StreamProvider.family` wiring it into Riverpod. - `EmailListScreen` — new `_buildSyncErrorBanner()` widget; tracks dismissed error per session so users aren't nagged after dismissing. Closes part of #19
Sign in to join this conversation.