siftlode/frontend/src/components
npeter83 b55a944e7c fix(ux): modal error dialog for server-refused actions + ESC closes only the topmost
- Duplicate-tag create/rename hit the uq_tags_user_name constraint and 500'd; now caught and
  returned as a clear 409 ('You already have a tag named …').
- New global error dialog (errorDialog store + ErrorDialog modal) for definitive server refusals;
  the api layer wiring + mount land with the rest of the round.
- Modal now keeps a stack so ESC dismisses only the top modal — an error over the tag editor
  closes the error and leaves the editor open.
2026-06-18 01:17:31 +02:00
..
legal chore: rebrand Subfeed -> Siftlode 2026-06-14 04:40:22 +02:00
About.tsx feat(i18n): translate login and app chrome (HU/EN/DE) 2026-06-15 00:30:34 +02:00
AddToPlaylist.tsx fix(ui): opaque .glass-menu for floating popovers (readability) 2026-06-16 01:39:56 +02:00
Avatar.tsx fix(ui): robust avatars — no-referrer + graceful fallback 2026-06-12 18:01:43 +02:00
Channels.tsx feat(channels): aggregate columns + smarter tag display 2026-06-17 23:24:25 +02:00
ConfirmProvider.tsx feat(ui): reusable app-styled confirm dialog, replacing window.confirm 2026-06-15 15:06:47 +02:00
DataTable.tsx feat(ui): content-driven column widths in DataTable 2026-06-17 23:24:25 +02:00
DemoBanner.tsx improvement(demo): permanent banner instead of a re-popping toast 2026-06-16 10:12:10 +02:00
ErrorBoundary.tsx feat(i18n): translate remaining components (HU/EN/DE) 2026-06-15 00:47:04 +02:00
ErrorDialog.tsx fix(ux): modal error dialog for server-refused actions + ESC closes only the topmost 2026-06-18 01:17:31 +02:00
Feed.tsx fix(player): persist watched at end-of-playback (atomic upsert) 2026-06-17 13:38:47 +02:00
Header.tsx feat(nav): group rail modules + move chrome controls into the sidebar 2026-06-17 14:28:29 +02:00
LanguageSwitcher.tsx feat(nav): group rail modules + move chrome controls into the sidebar 2026-06-17 14:28:29 +02:00
Login.tsx feat(demo): login trigger, feature gating + admin UI (HU/EN/DE) 2026-06-16 09:17:34 +02:00
Modal.tsx fix(ux): modal error dialog for server-refused actions + ESC closes only the topmost 2026-06-18 01:17:31 +02:00
NavSidebar.tsx feat(nav): group rail modules + move chrome controls into the sidebar 2026-06-17 14:28:29 +02:00
NotificationCenter.tsx feat(nav): group rail modules + move chrome controls into the sidebar 2026-06-17 14:28:29 +02:00
OnboardingWizard.tsx feat(i18n): translate remaining components (HU/EN/DE) 2026-06-15 00:47:04 +02:00
PlayerModal.tsx fix(player): persist watched at end-of-playback (atomic upsert) 2026-06-17 13:38:47 +02:00
Playlists.tsx feat(playlists): move the new-playlist input to the top of the rail 2026-06-17 13:55:43 +02:00
ReleaseNotes.tsx feat(i18n): translate login and app chrome (HU/EN/DE) 2026-06-15 00:30:34 +02:00
Scheduler.tsx feat(scheduler): per-job help tooltips, status legend, inline interval edit 2026-06-16 15:58:23 +02:00
SettingsPanel.tsx fix(settings): persist the active tab across reloads 2026-06-17 14:30:56 +02:00
Sidebar.tsx feat(feed): Show chips in the toolbar + key+direction sort 2026-06-16 02:46:26 +02:00
Stats.tsx fix(stats): keep daily usage bars always visible 2026-06-17 13:55:43 +02:00
SyncStatus.tsx fix(header): keep the sync-status count live (focus refetch + background poll) 2026-06-15 17:00:06 +02:00
Toaster.tsx feat(toast): surface toasts bottom-left by the bell, brighter dark rim 2026-06-17 14:28:29 +02:00
Tooltip.tsx fix(ui): portal tooltips, opaque glass, settings rail+stable height, notif test, channel help 2026-06-11 21:30:25 +02:00
UndoToolbar.tsx feat(playlists): sort + group-by-channel with reusable undo/redo 2026-06-15 21:52:28 +02:00
VersionBanner.tsx feat(i18n): translate login and app chrome (HU/EN/DE) 2026-06-15 00:30:34 +02:00
VideoCard.tsx feat(card): show LIVE/upcoming badge where duration is absent 2026-06-16 09:36:51 +02:00