siftlode/frontend/src/lib
npeter83 b9a3a9012d feat(notifications): durable per-user inbox (P1) + maintenance schema
Add a server-backed notification center that coexists with the client-side
transient bell: a per-user `notifications` table (type/title/body/data JSON/
read/dismissed), a `/api/me/notifications` CRUD API (list, unread_count, read,
read_all, dismiss, clear), and a left-nav inbox module with a live unread badge
polled via useLiveQuery. Known types render trilingual text from type+data
(English stored text is the fallback); read rows are trimmed past a soft cap.

Also adds the schema the maintenance job builds on: videos.list?part=status
columns (embeddable/privacy_status/upload_status) and the validation lifecycle
columns (last_checked_at, unavailable_since, unavailable_reason).

Page-id validation is centralized in one PAGES source of truth (isPage) so the
new page survives reload without a second allowlist to keep in sync.
2026-06-18 03:20:17 +02:00
..
api.ts feat(notifications): durable per-user inbox (P1) + maintenance schema 2026-06-18 03:20:17 +02:00
errorDialog.ts fix(ux): modal error dialog for server-refused actions + ESC closes only the topmost 2026-06-18 01:17:31 +02:00
format.ts feat(i18n): translate remaining components (HU/EN/DE) 2026-06-15 00:47:04 +02:00
hints.ts feat(ui): liquid-glass design system, settings polish, hints, notif fixes 2026-06-11 21:08:35 +02:00
notifications.ts fix(notifications): don't resurrect stale toasts on reload 2026-06-12 18:07:31 +02:00
onboarding.ts feat(demo): login trigger, feature gating + admin UI (HU/EN/DE) 2026-06-16 09:17:34 +02:00
releaseNotes.ts chore(release): v0.8.0 — channel columns, tag workflow, video reset, error dialog 2026-06-18 01:18:41 +02:00
sidebarLayout.ts feat(tags): tag UX overhaul + per-card video reset 2026-06-18 01:17:31 +02:00
theme.ts feat: M4 (part 2) — React reader UI with theming 2026-06-11 02:19:47 +02:00
urlState.ts feat(notifications): durable per-user inbox (P1) + maintenance schema 2026-06-18 03:20:17 +02:00
useLiveQuery.ts feat(scheduler): live admin Scheduler dashboard + reusable poll hook (HU/EN/DE) 2026-06-16 14:38:51 +02:00
useUndoable.ts feat(playlists): sort + group-by-channel with reusable undo/redo 2026-06-15 21:52:28 +02:00
version.ts feat(i18n): foundation — react-i18next, language switcher, server-persisted choice 2026-06-15 00:30:34 +02:00