From 4cf7fdc1c2d058bb68d54cfa89a0cb623ead4652 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Fri, 20 Mar 2026 00:38:04 +0100 Subject: [PATCH] feat(frontend): add library sync interval + sync now to admin settings panel --- .../components/transcode-settings-dialog.tsx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/k-tv-frontend/app/(main)/dashboard/components/transcode-settings-dialog.tsx b/k-tv-frontend/app/(main)/dashboard/components/transcode-settings-dialog.tsx index ac3b75f..785c835 100644 --- a/k-tv-frontend/app/(main)/dashboard/components/transcode-settings-dialog.tsx +++ b/k-tv-frontend/app/(main)/dashboard/components/transcode-settings-dialog.tsx @@ -18,6 +18,8 @@ import { useTranscodeStats, useClearTranscodeCache, } from "@/hooks/use-transcode"; +import { useAdminSettings, useUpdateAdminSettings } from "@/hooks/use-admin-settings"; +import { useTriggerSync, useLibrarySyncStatus } from "@/hooks/use-library-sync"; import { toast } from "sonner"; interface Props { @@ -39,6 +41,14 @@ export function TranscodeSettingsDialog({ open, onOpenChange }: Props) { const updateSettings = useUpdateTranscodeSettings(); const clearCache = useClearTranscodeCache(); + const { data: adminSettings } = useAdminSettings(); + const updateAdminSettings = useUpdateAdminSettings(); + const triggerSync = useTriggerSync(); + const { data: syncStatuses } = useLibrarySyncStatus(); + const syncInterval = adminSettings?.library_sync_interval_hours ?? 6; + const [syncIntervalInput, setSyncIntervalInput] = useState(null); + const displayInterval = syncIntervalInput ?? syncInterval; + const [ttl, setTtl] = useState(24); const [confirmClear, setConfirmClear] = useState(false); @@ -130,6 +140,42 @@ export function TranscodeSettingsDialog({ open, onOpenChange }: Props) { )} +
+

Library sync

+
+ + setSyncIntervalInput(Number(e.target.value))} + className="h-8 w-24 text-xs bg-zinc-800 border-zinc-700 text-zinc-100" + /> + +
+ + {syncStatuses?.map(s => ( +

+ {s.provider_id}: {s.status} — {s.items_found} items +

+ ))} +
+