feat(scheduler): live admin Scheduler dashboard + reusable poll hook (HU/EN/DE)
New admin Scheduler page (left-nav entry) with a live, self-refreshing view of job activity, queued work and quota. Polling is factored into a reusable useLiveQuery hook (pauses when the tab is unfocused) that the notification bell and future yt-dlp job queue will reuse instead of re-implementing.
This commit is contained in:
parent
a339a73bd6
commit
73b06b1fb6
13 changed files with 491 additions and 5 deletions
|
|
@ -27,6 +27,7 @@ import Feed from "./components/Feed";
|
|||
import Channels, { type ChannelStatusFilter } from "./components/Channels";
|
||||
import Playlists from "./components/Playlists";
|
||||
import Stats from "./components/Stats";
|
||||
import Scheduler from "./components/Scheduler";
|
||||
import SettingsPanel from "./components/SettingsPanel";
|
||||
import OnboardingWizard from "./components/OnboardingWizard";
|
||||
import { shouldAutoOpenOnboarding } from "./lib/onboarding";
|
||||
|
|
@ -62,7 +63,8 @@ function loadInitialPage(): Page {
|
|||
stored === "channels" ||
|
||||
stored === "stats" ||
|
||||
stored === "playlists" ||
|
||||
stored === "settings"
|
||||
stored === "settings" ||
|
||||
stored === "scheduler"
|
||||
)
|
||||
return stored;
|
||||
return "feed";
|
||||
|
|
@ -271,6 +273,8 @@ export default function App() {
|
|||
/>
|
||||
) : page === "stats" && meQuery.data!.role === "admin" ? (
|
||||
<Stats />
|
||||
) : page === "scheduler" && meQuery.data!.role === "admin" ? (
|
||||
<Scheduler />
|
||||
) : page === "playlists" ? (
|
||||
<Playlists canWrite={meQuery.data!.can_write} />
|
||||
) : page === "settings" ? (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue