/** * RequestsTab — Jellyseerr request-management surface on the Jellyfin page. * * Jellyseerr was absorbed into Jellyfin config (jellyseerr_url + * jellyseerr_api_key) in Slice 1. This tab reads those config fields. When * configured, it shows the URL and a placeholder (no requests backend endpoint * exists yet — building one is out of scope for this slice). When not * configured, it shows an empty-state CTA directing the user to add the fields * to the Jellyfin config. */ import type { ServiceInstance } from "../../types"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { ExternalLink } from "lucide-react"; export function RequestsTab({ instance }: { instance: ServiceInstance }) { const jellyseerrUrl = String( (instance.config as Record).jellyseerr_url ?? "", ).trim(); const jellyseerrApiKey = String( (instance.config as Record).jellyseerr_api_key ?? "", ).trim(); if (!jellyseerrUrl || !jellyseerrApiKey) { return ( Jellyseerr is not configured for this Jellyfin instance. Add jellyseerr_url and jellyseerr_api_key to the Jellyfin config (Config tab) to enable request management. ); } return (

Jellyseerr

{jellyseerrUrl}
Jellyseerr is configured. The requests view will show pending and recently fulfilled media requests. (This surface is under development.)
); }