feat(plex): restore Collections filter as a cross-library union picker
The searchable Collections picker was dropped from the sidebar when browsing went unified (movies+shows across libraries) because collections are per-library and there's no single selected library. Bring it back library-agnostic: GET /api/plex/collections `library` is now optional — without it the endpoint unions collections across all enabled libraries (with it, the old single-library path the collection editor uses). The sidebar re-adds the searchable list (chip when one is active). Its query key is ["plex-collections","union",<search>] so a search term equal to a library plex_key can't collide with the editor's ["plex-collections",<key>], while the shared prefix keeps editor invalidation refreshing the picker.
This commit is contained in:
parent
b3af04a997
commit
5759deac20
3 changed files with 72 additions and 16 deletions
|
|
@ -1218,8 +1218,15 @@ export const api = {
|
|||
if (f) appendPlexFilters(u, f);
|
||||
return req(`/api/plex/facets?${u.toString()}`);
|
||||
},
|
||||
plexCollections: (library: string, q?: string): Promise<{ collections: PlexCollection[] }> =>
|
||||
req(`/api/plex/collections?library=${encodeURIComponent(library)}${q ? `&q=${encodeURIComponent(q)}` : ""}`),
|
||||
// With a library plex_key → that library's collections (editor). Without one → the union across all
|
||||
// enabled libraries (the unified-scope sidebar picker).
|
||||
plexCollections: (library?: string, q?: string): Promise<{ collections: PlexCollection[] }> => {
|
||||
const u = new URLSearchParams();
|
||||
if (library) u.set("library", library);
|
||||
if (q) u.set("q", q);
|
||||
const qs = u.toString();
|
||||
return req(`/api/plex/collections${qs ? `?${qs}` : ""}`);
|
||||
},
|
||||
// --- Collection editing (admin only; writes back to Plex) ---
|
||||
plexCreateCollection: (library: string, title: string, item_rating_key: string): Promise<PlexCollection> =>
|
||||
req(`/api/plex/collections`, { method: "POST", body: JSON.stringify({ library, title, item_rating_key }) }),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue