Initial commit

This commit is contained in:
2026-01-22 22:49:57 +13:00
commit fe43a81175
67 changed files with 9408 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
import { notFound } from 'next/navigation'
import SettingsPage from '../SettingsPage'
const ALLOWED_SECTIONS = new Set([
'jellyseerr',
'jellyfin',
'artwork',
'sonarr',
'radarr',
'prowlarr',
'qbittorrent',
'requests',
'cache',
'logs',
'maintenance',
])
type PageProps = {
params: { section: string }
}
export default function AdminSectionPage({ params }: PageProps) {
if (!ALLOWED_SECTIONS.has(params.section)) {
notFound()
}
return <SettingsPage section={params.section} />
}

View File

@@ -0,0 +1,26 @@
'use client'
import { useRouter } from 'next/navigation'
import AdminShell from '../ui/AdminShell'
export default function AdminLandingPage() {
const router = useRouter()
return (
<AdminShell
title="Settings"
subtitle="Choose what you want to manage."
actions={
<button type="button" onClick={() => router.push('/')}>
Back to requests
</button>
}
>
<section className="admin-section">
<div className="status-banner">
Pick a section from the left. Each page explains what it does and how it helps.
</div>
</section>
</AdminShell>
)
}