siftlode/frontend/src/components
npeter83 2aa13a6433 feat(auth): account lifecycle — Google linking, passwords, suspension & deletion plumbing
- Link a Google account to a password account, and adopt the Google identity onto a matching
  email account instead of 500ing on a duplicate; set or change a password from Settings.
- Expose has_google/has_password on /api/me for the Sign-in methods UI.
- Mark Google logins email-verified (backfill existing rows, migration 0024); stop a routine
  login from clobbering an admin-assigned role (env ADMIN_EMAILS stays the bootstrap admin).
- Suspension login-gates (password + Google callback + current_user) with a rate-limited
  'suspended' notice; shared purge_user (cascade delete + access-request cleanup + Google-grant
  revoke) behind self- and admin-deletion; single app_base source for user-facing email links.
2026-06-19 19:52:02 +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
AdminUsers.tsx feat(auth): admin Users page + allow_registration toggle (5a frontend) 2026-06-19 14:16:48 +02:00
Avatar.tsx fix(ui): robust avatars — no-referrer + graceful fallback 2026-06-12 18:01:43 +02:00
Banner.tsx refactor(banner): extract reusable Banner base for VersionBanner + DemoBanner 2026-06-19 11:18:20 +02:00
ChannelDiscovery.tsx feat(discovery): total-videos column + subscribe confirmation 2026-06-19 11:18:28 +02:00
ChannelLink.tsx refactor(channels): share one ChannelLink + channelYouTubeUrl helper 2026-06-19 03:22:10 +02:00
Channels.tsx fix(channels): drop a stale column filter when sent to "without full history" 2026-06-19 03:55:55 +02:00
ConfigPanel.tsx feat(auth): admin Users page + allow_registration toggle (5a frontend) 2026-06-19 14:16:48 +02:00
ConfirmProvider.tsx feat(ui): reusable app-styled confirm dialog, replacing window.confirm 2026-06-15 15:06:47 +02:00
DataTable.tsx fix(channels): drop a stale column filter when sent to "without full history" 2026-06-19 03:55:55 +02:00
DemoBanner.tsx refactor(banner): extract reusable Banner base for VersionBanner + DemoBanner 2026-06-19 11:18:20 +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 feat(inbox): add navigation links to watched and scheduler notices 2026-06-19 03:05:01 +02:00
Header.tsx feat(auth): admin Users page + allow_registration toggle (5a frontend) 2026-06-19 14:16:48 +02:00
LanguageSwitcher.tsx feat(nav): group rail modules + move chrome controls into the sidebar 2026-06-17 14:28:29 +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(auth): admin Users page + allow_registration toggle (5a frontend) 2026-06-19 14:16:48 +02:00
NotificationsPanel.tsx fix(inbox): access-requests nudge points to Users + a jump link, no pile-up 2026-06-19 16:10:08 +02:00
OnboardingWizard.tsx feat(i18n): translate remaining components (HU/EN/DE) 2026-06-15 00:47:04 +02:00
PlayerModal.tsx refactor(channels): share one ChannelLink + channelYouTubeUrl helper 2026-06-19 03:22:10 +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 fix(scheduler): show progress for any running job with reliable live updates 2026-06-19 02:43:46 +02:00
SettingsPanel.tsx feat(auth): account lifecycle — Google linking, passwords, suspension & deletion plumbing 2026-06-19 19:52:02 +02:00
Sidebar.tsx feat(tags): tag UX overhaul + per-card video reset 2026-06-18 01:17:31 +02:00
Stats.tsx feat(stats): consolidate per-user sync status into the Stats page 2026-06-19 11:48:20 +02:00
SyncStatus.tsx perf(header): poll sync status faster while work is in flight 2026-06-19 03:24:45 +02:00
TagManager.tsx feat(tags): tag UX overhaul + per-card video reset 2026-06-18 01:17:31 +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 refactor(banner): extract reusable Banner base for VersionBanner + DemoBanner 2026-06-19 11:18:20 +02:00
VideoCard.tsx feat(tags): tag UX overhaul + per-card video reset 2026-06-18 01:17:31 +02:00
Welcome.tsx feat(auth): welcome/landing page + email-password login UI (5b) 2026-06-19 15:15:58 +02:00