import { Head, useForm } from '@inertiajs/react'; import { Clock3, Save, ShieldCheck } 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 { Input } from '@/components/ui/input'; type Definition = { label: string; description: string; default: number; min: number; max: number; unit: string; }; export default function ReservationPolicyPage({ definitions, values, }: { definitions: Record; values: Record; }) { const form = useForm(values); function submit(event: FormEvent) { event.preventDefault(); form.put('/administracao/regras', { preserveScroll: true }); } return ( <>

As margens já gravadas permanecem associadas às reservas existentes. Alterações entram em vigor imediatamente para novas requisições.

{Object.entries(definitions).map( ([key, definition]) => ( {definition.label}

{definition.description}

form.setData( key, Number( event.target.value, ), ) } /> {definition.unit}

Intervalo permitido:{' '} {definition.min}–{definition.max}

), )}
); } ReservationPolicyPage.layout = { breadcrumbs: [ { title: 'Administração', href: '/administracao/regras' }, { title: 'Regras de reserva', href: '/administracao/regras' }, ], };