'use client'; import { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; import { TransmittalList } from '@/components/transmittal/transmittal-list'; import { transmittalService } from '@/lib/services/transmittal.service'; import { projectService } from '@/lib/services/project.service'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Plus, RefreshCw } from 'lucide-react'; import Link from 'next/link'; import { TransmittalListResponse } from '@/types/transmittal'; import { TransmittalPurpose } from '@/types/dto/transmittal/transmittal.dto'; const PURPOSE_OPTIONS: { value: TransmittalPurpose | ''; label: string }[] = [ { value: '', label: 'All Purposes' }, { value: TransmittalPurpose.FOR_APPROVAL, label: 'For Approval' }, { value: TransmittalPurpose.FOR_INFORMATION, label: 'For Information' }, { value: TransmittalPurpose.FOR_REVIEW, label: 'For Review' }, { value: TransmittalPurpose.OTHER, label: 'Other' }, ]; export default function TransmittalPage() { // ADR-019: Dynamic project selection via UUID const [selectedProjectUuid, setSelectedProjectUuid] = useState(''); const [selectedPurpose, setSelectedPurpose] = useState(''); const { data: projectsData } = useQuery({ queryKey: ['projects-for-transmittals'], queryFn: () => projectService.getAll(), }); const projects = projectsData?.data || projectsData || []; const { data, isLoading, error, refetch } = useQuery({ queryKey: ['transmittals', selectedProjectUuid, selectedPurpose], queryFn: () => transmittalService.getAll({ projectId: selectedProjectUuid, ...(selectedPurpose ? { purpose: selectedPurpose } : {}), }), enabled: !!selectedProjectUuid, }); return (

Transmittals

Manage document transmittal slips

{/* Filters: Project + Purpose (v1.8.7 B3) */}
Project: Purpose:
{error && (
Failed to load transmittals.
)} {isLoading ? (
) : ( )}
); }