feat(web): player bar, playable track lists and Collection (M3)
- player bar with cover, like and dislike, previous / play / next, shuffle, repeat, seek bar and volume; PlayerProvider lives with the signed-in shell and restores the last track and position paused - clicking a row (or Enter) plays the list from that track with its context (album, search, history, collection); the current track is highlighted and rows have a like button; a reaction refreshes lists - Collection: history grouped by day with clearing, likes with "play all" and dislikes, all with paging; sidebar section - events and playback state are flushed when the page is hidden; player timers survive StrictMode remounts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ec3c2810c8
commit
976ffb574b
15 files changed
+803
-49
No files matched your search
@@ -15,6 +15,7 @@ import { SourcesPage } from '../pages/admin/SourcesPage';
|
||||
import { UsersPage } from '../pages/admin/UsersPage';
|
||||
import { AlbumPage } from '../pages/AlbumPage';
|
||||
import { ArtistPage } from '../pages/ArtistPage';
|
||||
import { CollectionPage } from '../pages/CollectionPage';
|
||||
import { HomePage } from '../pages/HomePage';
|
||||
import { LoginPage } from '../pages/LoginPage';
|
||||
import { SearchPage, type SearchType } from '../pages/SearchPage';
|
||||
@@ -126,6 +127,24 @@ const auditRoute = createRoute({
|
||||
component: AuditPage,
|
||||
});
|
||||
|
||||
const historyRoute = createRoute({
|
||||
getParentRoute: () => appRoute,
|
||||
path: '/collection/history',
|
||||
component: () => <CollectionPage tab="history" />,
|
||||
});
|
||||
|
||||
const likesRoute = createRoute({
|
||||
getParentRoute: () => appRoute,
|
||||
path: '/collection/likes',
|
||||
component: () => <CollectionPage tab="likes" />,
|
||||
});
|
||||
|
||||
const dislikesRoute = createRoute({
|
||||
getParentRoute: () => appRoute,
|
||||
path: '/collection/dislikes',
|
||||
component: () => <CollectionPage tab="dislikes" />,
|
||||
});
|
||||
|
||||
const searchRoute = createRoute({
|
||||
getParentRoute: () => appRoute,
|
||||
path: '/search',
|
||||
@@ -194,6 +213,9 @@ const routeTree = rootRoute.addChildren([
|
||||
homeRoute,
|
||||
settingsRoute,
|
||||
searchRoute,
|
||||
historyRoute,
|
||||
likesRoute,
|
||||
dislikesRoute,
|
||||
artistRoute,
|
||||
albumRoute,
|
||||
usersRoute,
|
||||
|
||||
Reference in new issue
Block a user