feat(discover): wire A4 search + A5 downloads to backend
Adds DownloadJob/ExternalSearchResult/SourceInfo contract types + mappers, the downloads + search RTKQ endpoints, and the SearchDownloadPage (search external sources, per-result download states) and DownloadsManagerPage (active/history, progress, retry/cancel, poll-while-active). en/ru i18n. Snapshot also bundles in-progress queue/metadata-editor/storage UI work. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -76,13 +76,25 @@ export function LibraryPage() {
|
||||
// Live server data wins; offline we fall back to the locally-composed list.
|
||||
const tracksToShow =
|
||||
tracksQuery.data?.items ??
|
||||
(offline ? (q ? localTracks.filter((tr) => matchTrack(tr, q)) : localTracks) : undefined);
|
||||
(offline
|
||||
? q
|
||||
? localTracks.filter((tr) => matchTrack(tr, q))
|
||||
: localTracks
|
||||
: undefined);
|
||||
const albumsToShow =
|
||||
albumsQuery.data?.items ??
|
||||
(offline ? (q ? localAlbums.filter((a) => matchAlbum(a, q)) : localAlbums) : undefined);
|
||||
(offline
|
||||
? q
|
||||
? localAlbums.filter((a) => matchAlbum(a, q))
|
||||
: localAlbums
|
||||
: undefined);
|
||||
const artistsToShow =
|
||||
artistsQuery.data?.items ??
|
||||
(offline ? (q ? localArtists.filter((a) => matchArtist(a, q)) : localArtists) : undefined);
|
||||
(offline
|
||||
? q
|
||||
? localArtists.filter((a) => matchArtist(a, q))
|
||||
: localArtists
|
||||
: undefined);
|
||||
|
||||
const handlePlayAll = (tracks: Track[]) => {
|
||||
dispatch(
|
||||
|
||||
Reference in New Issue
Block a user