| .. |
|
legal
|
chore: Phase 1 hygiene — drop unused imports/exports/types (behavior-neutral)
|
2026-07-11 04:47:08 +02:00 |
|
ui
|
chore(ui): extract shared inputCls + btnCls to ui/form.tsx
|
2026-07-12 00:29:04 +02:00 |
|
About.tsx
|
feat(i18n): translate login and app chrome (HU/EN/DE)
|
2026-06-15 00:30:34 +02:00 |
|
AddToPlaylist.tsx
|
refactor(ui): useDismiss hook for outside-click/Escape close
|
2026-06-29 00:11:44 +02:00 |
|
AdminUsers.tsx
|
perf: route- and modal-level code splitting (React.lazy)
|
2026-07-04 19:43:50 +02:00 |
|
Avatar.tsx
|
fix(ui): robust avatars — no-referrer + graceful fallback
|
2026-06-12 18:01:43 +02:00 |
|
BackToTop.tsx
|
fix(ui): make the back-to-top button resist ad-block cosmetic filters
|
2026-06-30 05:18:07 +02:00 |
|
Banner.tsx
|
refactor(banner): extract reusable Banner base for VersionBanner + DemoBanner
|
2026-06-19 11:18:20 +02:00 |
|
channelColumns.tsx
|
chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column)
|
2026-07-12 00:46:52 +02:00 |
|
ChannelDiscovery.tsx
|
chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column)
|
2026-07-12 00:46:52 +02:00 |
|
ChannelLink.tsx
|
refactor(channels): share one ChannelLink + channelYouTubeUrl helper
|
2026-06-19 03:22:10 +02:00 |
|
ChannelPage.tsx
|
fix(channels): ChannelPage subscribe — surface 403 + fix stale caches
|
2026-07-11 18:11:23 +02:00 |
|
Channels.tsx
|
chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column)
|
2026-07-12 00:46:52 +02:00 |
|
ChatDock.tsx
|
fix(messages): make the dock new-message flash actually visible
|
2026-06-26 00:00:21 +02:00 |
|
ChatThread.tsx
|
fix(messages-ui): surface silent send failures, stop scroll/render churn (+cleanup)
|
2026-07-11 20:16:14 +02:00 |
|
CollapsedFilterRail.tsx
|
chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column)
|
2026-07-12 00:46:52 +02:00 |
|
ConfigPanel.tsx
|
fix(admin-ui): Plex library toggle inversion + Purge-discovery confirm (+ cleanups)
|
2026-07-11 19:44:53 +02:00 |
|
ConfirmProvider.tsx
|
feat(ui): reusable app-styled confirm dialog, replacing window.confirm
|
2026-06-15 15:06:47 +02:00 |
|
DataTable.tsx
|
chore: Phase 1 hygiene — drop unused imports/exports/types (behavior-neutral)
|
2026-07-11 04:47:08 +02:00 |
|
DemoBanner.tsx
|
refactor(banner): extract reusable Banner base for VersionBanner + DemoBanner
|
2026-06-19 11:18:20 +02:00 |
|
DownloadButton.tsx
|
perf: route- and modal-level code splitting (React.lazy)
|
2026-07-04 19:43:50 +02:00 |
|
DownloadCenter.tsx
|
chore(ui): extract shared inputCls + btnCls to ui/form.tsx
|
2026-07-12 00:29:04 +02:00 |
|
DownloadDialog.tsx
|
chore(ui): extract shared inputCls + btnCls to ui/form.tsx
|
2026-07-12 00:29:04 +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(feed): repair 2 bugs found in the Phase 2 #2 review
|
2026-07-11 17:43:18 +02:00 |
|
Header.tsx
|
fix(plex): give the library search its own ephemeral state
|
2026-07-08 23:19:36 +02:00 |
|
KeyGate.tsx
|
feat(messages): standalone Messages module + floating chat dock
|
2026-06-25 22:34:24 +02:00 |
|
LanguageSwitcher.tsx
|
feat(nav): current-language badge (HU/EN/DE) on the rail language switcher
|
2026-07-01 22:50:59 +02:00 |
|
Messages.tsx
|
fix(messages-ui): surface silent send failures, stop scroll/render churn (+cleanup)
|
2026-07-11 20:16:14 +02:00 |
|
Modal.tsx
|
fix(ui): only close a modal when the backdrop click starts on the backdrop
|
2026-07-07 22:28:33 +02:00 |
|
NavSidebar.tsx
|
fix(e2ee): clear the device's private key on logout (user-approved: every logout)
|
2026-07-11 20:57:30 +02:00 |
|
NotificationsPanel.tsx
|
perf: route- and modal-level code splitting (React.lazy)
|
2026-07-04 19:43:50 +02:00 |
|
OnboardingWizard.tsx
|
feat(i18n): translate remaining components (HU/EN/DE)
|
2026-06-15 00:47:04 +02:00 |
|
PageTitle.tsx
|
feat(ui): favicon, dynamic tab title, clickable logo, styled module headers
|
2026-07-04 06:17:40 +02:00 |
|
PlayerModal.tsx
|
fix(player): short-video auto-watch + player cleanups
|
2026-07-11 18:49:56 +02:00 |
|
Playlists.tsx
|
fix(playlists-ui): surface YouTube 403s + rollback remove; drop dup name/import
|
2026-07-11 18:33:16 +02:00 |
|
PlexBrowse.tsx
|
chore(hygiene): Phase 4 guardrails — noUnusedLocals/Parameters + dead-code sweep
|
2026-07-12 02:15:52 +02:00 |
|
PlexCollectionEditor.tsx
|
fix(plex): address code-review findings (F1-F3, F5, F9)
|
2026-07-11 02:25:14 +02:00 |
|
PlexInfo.tsx
|
chore(plex): dedup frontend formatters + LS key, drop dead wasPlaying pref
|
2026-07-11 23:10:24 +02:00 |
|
PlexPlayer.tsx
|
fix(plex): player marker-skip reset, lang-switch reload, tracks wheel, sidebar badge clamp
|
2026-07-11 23:13:10 +02:00 |
|
PlexPlaylistAdd.tsx
|
feat(plex): grouped collapsible playlist view + drag-and-drop + bulk add
|
2026-07-06 22:14:56 +02:00 |
|
PlexPlaylistView.tsx
|
feat(plex): grouped collapsible playlist view + drag-and-drop + bulk add
|
2026-07-06 22:14:56 +02:00 |
|
PlexSidebar.tsx
|
feat(plex): collapse button in the expanded Plex filter sidebar
|
2026-07-12 01:55:10 +02:00 |
|
ProfileEditor.tsx
|
chore(ui): extract shared inputCls + btnCls to ui/form.tsx
|
2026-07-12 00:29:04 +02:00 |
|
ReleaseNotes.tsx
|
feat(i18n): translate login and app chrome (HU/EN/DE)
|
2026-06-15 00:30:34 +02:00 |
|
SavedViewsWidget.tsx
|
chore(hygiene): Phase 4 guardrails — noUnusedLocals/Parameters + dead-code sweep
|
2026-07-12 02:15:52 +02:00 |
|
Scheduler.tsx
|
fix(admin-ui): Plex library toggle inversion + Purge-discovery confirm (+ cleanups)
|
2026-07-11 19:44:53 +02:00 |
|
SettingsPanel.tsx
|
fix(admin-ui): Plex library toggle inversion + Purge-discovery confirm (+ cleanups)
|
2026-07-11 19:44:53 +02:00 |
|
SetupWizard.tsx
|
feat(setup): install-wizard UI (epic 6c)
|
2026-06-21 01:11:16 +02:00 |
|
ShareDialog.tsx
|
chore(ui): extract shared inputCls + btnCls to ui/form.tsx
|
2026-07-12 00:29:04 +02:00 |
|
Sidebar.tsx
|
chore(hygiene): Phase 4 guardrails — noUnusedLocals/Parameters + dead-code sweep
|
2026-07-12 02:15:52 +02:00 |
|
Stats.tsx
|
fix(state): scope all per-account localStorage by account id
|
2026-07-02 01:45:16 +02:00 |
|
SyncStatus.tsx
|
fix(sync): keep the pause control inline in the nav rail, not on an orphan line
|
2026-07-04 04:41:13 +02:00 |
|
Tabs.tsx
|
fix(state): scope all per-account localStorage by account id
|
2026-07-02 01:45:16 +02:00 |
|
TagManager.tsx
|
fix(notifications): name the entity in action toasts
|
2026-06-26 00:32:17 +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(tooltip): keep hint captions inside the viewport near screen edges
|
2026-07-04 04:45:51 +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
|
chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column)
|
2026-07-12 00:46:52 +02:00 |
|
VideoEditor.tsx
|
chore(hygiene): Phase 4 guardrails — noUnusedLocals/Parameters + dead-code sweep
|
2026-07-12 02:15:52 +02:00 |
|
VirtualFeed.tsx
|
feat(channels): dedicated channel page + ephemeral explore UI
|
2026-06-30 03:08:52 +02:00 |
|
WatchPage.tsx
|
feat(downloads): clickable channels + poster fallback for thumbnail-less sources
|
2026-07-07 22:28:49 +02:00 |
|
Welcome.tsx
|
perf(landing): WebP welcome screenshots + long-cache static assets
|
2026-07-04 18:17:11 +02:00 |