import { Head, Link, router, useForm } from '@inertiajs/react'; import { ArrowLeft, CalendarClock, Check, MapPin, PackageCheck, } from 'lucide-react'; import type { FormEvent } from 'react'; import InputError from '@/components/input-error'; import { PageHeading } from '@/components/page-heading'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Checkbox } from '@/components/ui/checkbox'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import type { Asset } from '@/types'; export default function CreateReservation({ assets, selectedAssetId, period, periodSelected, }: { assets: Asset[]; selectedAssetId: number; period: { starts_at?: string; ends_at?: string }; periodSelected: boolean; }) { const form = useForm({ purpose: '', usage_location: '', starts_at: period.starts_at ?? '', ends_at: period.ends_at ?? '', asset_ids: selectedAssetId ? [selectedAssetId] : ([] as number[]), terms_accepted: false, }); function submit(event: FormEvent) { event.preventDefault(); form.post('/requisicoes'); } function toggleAsset(id: number, checked: boolean) { form.setData( 'asset_ids', checked ? [...form.data.asset_ids, id] : form.data.asset_ids.filter((item) => item !== id), ); } function refreshAvailability() { router.get('/requisicoes/nova', { starts_at: form.data.starts_at, ends_at: form.data.ends_at, }); } return ( <>
Voltar ao catálogo } />
{' '} Período e utilização form.setData( 'starts_at', e.target.value, ) } /> form.setData( 'ends_at', e.target.value, ) } />
form.setData( 'usage_location', e.target.value, ) } placeholder="Ex.: Auditório principal" />

Confirme a disponibilidade sempre que alterar o período.