feat(services): select Jellyfin via jellyfin_service_id on the frontend
Slice 4b frontend half. Jellyfin-touching pages now select a Jellyfin service instance instead of a machine. - api/client.ts: Jellyfin-backed calls (counts/libraries/activity/users, media status/build/stop/force-stop, queryMedia) send jellyfin_service_id. - hooks/useDashboard, useUsers, useMedia: selector param renamed to jellyfinServiceId. - pages/Media + Applications: list jellyfin service instances and persist jellyfin_service_id in the URL. - Dashboard (widgets) and Users (default instance) need no selector change. - Update Applications + Media tests for the new hook/param. Files/SSH transport keeps machine_id. Verification: frontend lint 0 errors, build success, 70 tests; backend ruff clean, 222 tests.
This commit is contained in:
@@ -9,26 +9,26 @@ import {
|
||||
} from "../api/client";
|
||||
import type { DashboardShortcutInput } from "../types";
|
||||
|
||||
export function useCounts(machineId?: string) {
|
||||
export function useCounts(jellyfinServiceId?: string) {
|
||||
return useQuery({
|
||||
queryKey: ["dashboard", "counts", machineId ?? "default"],
|
||||
queryFn: () => fetchCounts(machineId),
|
||||
queryKey: ["dashboard", "counts", jellyfinServiceId ?? "default"],
|
||||
queryFn: () => fetchCounts(jellyfinServiceId),
|
||||
staleTime: 5 * 60 * 1000,
|
||||
});
|
||||
}
|
||||
|
||||
export function useLibraries(machineId?: string) {
|
||||
export function useLibraries(jellyfinServiceId?: string) {
|
||||
return useQuery({
|
||||
queryKey: ["dashboard", "libraries", machineId ?? "default"],
|
||||
queryFn: () => fetchLibraries(machineId),
|
||||
queryKey: ["dashboard", "libraries", jellyfinServiceId ?? "default"],
|
||||
queryFn: () => fetchLibraries(jellyfinServiceId),
|
||||
staleTime: 5 * 60 * 1000,
|
||||
});
|
||||
}
|
||||
|
||||
export function useActivity(machineId?: string) {
|
||||
export function useActivity(jellyfinServiceId?: string) {
|
||||
return useQuery({
|
||||
queryKey: ["dashboard", "activity", machineId ?? "default"],
|
||||
queryFn: () => fetchActivity(machineId),
|
||||
queryKey: ["dashboard", "activity", jellyfinServiceId ?? "default"],
|
||||
queryFn: () => fetchActivity(jellyfinServiceId),
|
||||
refetchInterval: 15_000,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user