import { useEffect, useState } from "react"; import { useLogs } from "~/hooks/use-logs"; import { LogsFilters } from "~/components/logs/logs-filters"; import { VirtualLogsList } from "~/components/logs/virtual-logs-list"; import { Card, CardContent } from "~/components/ui/card"; import { Database, Inbox, LoaderCircle } from "lucide-react"; import { PageHeader } from "~/components/common/page-header"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "~/components/ui/resizable"; import { Outlet, useParams } from "@remix-run/react"; import { cn } from "~/lib/utils"; import { OnboardingModal } from "~/components/onboarding"; export default function LogsAll() { const [selectedSource, setSelectedSource] = useState(); const [selectedStatus, setSelectedStatus] = useState(); const [selectedType, setSelectedType] = useState(); const [onboarding, setOnboarding] = useState(false); const { logId } = useParams(); const { logs, hasMore, loadMore, availableSources, isLoading, isInitialLoad, } = useLogs({ endpoint: "/api/v1/logs", source: selectedSource, status: selectedStatus, type: selectedType, }); useEffect(() => { if (!isLoading && logs && logs.length === 1) { setOnboarding(true); } }, [logs.length, isLoading]); return ( <>
{isInitialLoad ? ( <> ) : ( <> {/* Filters */} {/* Logs List */}
{logs.length === 0 ? (

No logs found

{selectedSource || selectedStatus || selectedType ? "Try adjusting your filters to see more results." : "No ingestion logs are available yet."}

) : ( )}
)}
{!logId && (
No episode selected
)}
{ setOnboarding(false); }} onComplete={() => { setOnboarding(false); }} /> ); }