'use client'; import { useState } from 'react'; import { useProcesses } from '@/lib/hooks/useSupervisor'; import { ProcessCard } from '@/components/process/ProcessCard'; import { GroupView } from '@/components/groups/GroupView'; import { GroupSelector } from '@/components/groups/GroupSelector'; import { BatchActions } from '@/components/process/BatchActions'; import { RefreshCw, AlertCircle, CheckSquare } from 'lucide-react'; import { Button } from '@/components/ui/button'; export default function ProcessesPage() { const [viewMode, setViewMode] = useState<'flat' | 'grouped'>('flat'); const [selectedProcesses, setSelectedProcesses] = useState>(new Set()); const { data: processes, isLoading, isError, refetch } = useProcesses(); const handleSelectionChange = (processId: string, selected: boolean) => { setSelectedProcesses((prev) => { const newSet = new Set(prev); if (selected) { newSet.add(processId); } else { newSet.delete(processId); } return newSet; }); }; const handleSelectAll = () => { if (processes) { if (selectedProcesses.size === processes.length) { setSelectedProcesses(new Set()); } else { setSelectedProcesses(new Set(processes.map((p) => `${p.group}:${p.name}`))); } } }; const handleClearSelection = () => { setSelectedProcesses(new Set()); }; if (isLoading) { return (

Processes

{[1, 2, 3, 4, 5, 6].map((i) => (
))}
); } if (isError) { return (

Processes

Failed to load processes

Could not connect to Supervisor. Please check your configuration.

); } return (

Processes

{processes?.length ?? 0} processes configured

{viewMode === 'flat' && processes && processes.length > 0 && ( )}
{processes && processes.length === 0 ? (

No processes configured

) : viewMode === 'grouped' ? ( ) : (
{processes?.map((process) => { const fullName = `${process.group}:${process.name}`; return ( ); })}
)}
); }