feat(ui): notification center with leveled toasts and error capture

- Replace the toast store with a notification store: levels (info/success/
  warning/error/fatal), requiresInteraction, and a persisted history.
- Move toasts to the top-right, styled per level, with manual dismiss.
- Add a bell in the header opening a Notification Center (history, unread badge,
  'needs attention' vs info, clear all).
- Capture network failures and 5xx responses (api layer) and render crashes
  (ErrorBoundary) as notifications.
- Sound + server-sourced events + per-account settings remain for 6b.
This commit is contained in:
npeter83 2026-06-11 19:26:34 +02:00
parent 01960d3bb7
commit 2c51e4434b
9 changed files with 403 additions and 68 deletions

View file

@ -12,6 +12,7 @@ import {
import { SCHEMES, type Scheme, type ThemePrefs } from "../lib/theme";
import type { FeedFilters, Me } from "../lib/api";
import SyncStatus from "./SyncStatus";
import NotificationCenter from "./NotificationCenter";
function IconBtn(props: React.ButtonHTMLAttributes<HTMLButtonElement>) {
const { className = "", ...rest } = props;
@ -130,6 +131,8 @@ export default function Header({
)}
</div>
<NotificationCenter />
<div className="pl-1">
<AccountMenu me={me} logout={logout} />
</div>