import { Head, Link, useForm } from '@inertiajs/react'; import { Plus, Search } from 'lucide-react'; import { PageTitle, Panel, RequisitionTable, controlClass, } from '@/components/procurement'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { statusLabels } from '@/types/procurement'; import type { Requisition } from '@/types/procurement'; type Props = { requisitions: { data: Requisition[]; current_page: number; last_page: number; prev_page_url: string | null; next_page_url: string | null; total: number; }; filters: { search?: string; status?: string; view?: string }; }; export default function Index({ requisitions, filters }: Props) { const form = useForm({ search: filters.search ?? '', status: filters.status ?? '', view: filters.view ?? 'all', }); const views: Record = { all: { title: 'Requisições autorizadas', description: 'Consulte os pedidos disponíveis para o seu perfil e acompanhe o estado de cada processo.', }, mine: { title: filters.status === 'draft' ? 'Os meus rascunhos' : 'Minhas requisições', description: 'Pedidos criados por si, desde o rascunho até à decisão.', }, approvals: { title: 'Pendentes para mim', description: 'Pedidos em que a próxima etapa pode ser decidida por si. A elegibilidade é conferida pelo servidor.', }, decided: { title: 'Minhas decisões', description: 'Histórico dos pedidos em que registou uma aprovação ou rejeição.', }, }; const view = views[filters.view ?? 'all'] ?? views.all; return ( <>
Nova requisição } />
{ e.preventDefault(); form.get('/requisicoes', { preserveState: true }); }} > form.setData('search', e.target.value) } />

{requisitions.total} pedidos · Página{' '} {requisitions.current_page} de{' '} {requisitions.last_page}

{requisitions.prev_page_url && ( )} {requisitions.next_page_url && ( )}
); } Index.layout = { breadcrumbs: [{ title: 'Requisições', href: '/requisicoes' }], };