Migrate Snippets and RSS plugins from local ErrorMessage to unified IToastService
Details
Snippets (v1.7.6):
- Add IToastService to SnippetsViewModel constructor via SnippetsPlugin
- Replace all ErrorMessage assignments with Toast(msg, ToastType.Error)
- Replace ShowSuccess helper to route through Toast(msg, ToastType.Success)
- Remove _errorMessage and _successMessage ObservableProperty fields
- Remove inline error/success Border elements from SnippetsView.axaml
RSS (v1.9.6):
- Add IToastService to RssViewModel constructor via RssPlugin
- Replace all ErrorMessage assignments with Toast(msg, ToastType.Error)
- Convert completion StatusMessage assignments to Toast calls (feed added,
feed removed, refresh complete, mark all read, OPML imported, category set,
feed renamed)
- Keep StatusMessage for progress indicators shown in loading overlay
(fetching feed, saving feed, importing OPML progress)
- Remove ClearStatusAfterDelay helper (no longer needed)
- Remove inline StatusMessage TextBlock from bottom bar in RssView.axaml
- Remove _errorMessage ObservableProperty field
Migrate Contacts from local toasts to unified IToastService
Details
Replace inline ErrorMessage/SuccessMessage ObservableProperties and
their AXAML toast borders with the shell-level IToastService via a
private Toast() helper method, matching the pattern established by
Calendar and Tasks.
- Add Toast() helper routing to _host.Toast.Show() with StatusMessage fallback
- Convert all ErrorMessage assignments (30 sites) to Toast(..., ToastType.Error)
- Convert all SuccessMessage assignments (20 sites) to Toast(..., ToastType.Success)
- Remove _errorMessage/_successMessage ObservableProperty declarations
- Remove OnSuccessMessageChanged auto-dismiss partial method
- Remove Error Toast and Success Toast Border elements from ContactsView.axaml
- Add _statusMessage ObservableProperty for fallback path
Migrate Files plugin from local ErrorMessage/SuccessMessage to unified IToastService
Details
Replace inline ErrorMessage and SuccessMessage observable properties with
centralized Toast() helper that delegates to _host.Toast.Show(). This removes
the custom auto-dismiss timer (OnSuccessMessageChanged) and inline TextBlock
toast UI from FilesView.axaml, aligning with the shell's unified toast system
already adopted by Calendar and other plugins.
Changes:
- Add private Toast() helper method using _host.Toast.Show()
- Replace all ErrorMessage assignments with Toast(..., ToastType.Error)
- Replace all SuccessMessage assignments with Toast(..., ToastType.Success)
- Remove ErrorMessage and SuccessMessage observable properties
- Remove OnSuccessMessageChanged partial method (3-second auto-dismiss)
- Remove ErrorMessage TextBlock from vault unlock panel in AXAML
- Remove SuccessMessage/ErrorMessage TextBlocks from status bar in AXAML
Migrate Calendar from local toasts to unified IToastService
Details
Replace custom ErrorMessage/SuccessMessage observable properties and
inline toast borders with the shell's IToastService (same pattern Tasks
uses). This gives Calendar consistent animated toasts with type-specific
styling and auto-dismiss timers managed by the shell.
Removed: ErrorMessage/SuccessMessage properties, OnErrorMessageChanged/
OnSuccessMessageChanged auto-clear handlers, inline success/error
Border elements from CalendarView.axaml.
Added: Toast() helper method routing to Host.Toast with StatusMessage
fallback (matching Tasks pattern).
Make color picker selection ring theme-aware (BUG #60 follow-up)
Details
Replace hardcoded white BorderBrush with ThemeTextPrimaryBrush (adapts
to light/dark theme). Converter now returns Thickness instead of Brush
so the theme resource can be resolved in XAML.
Get notified about new releases