'use client'; import Link from 'next/link'; import { useParams, useRouter } from 'next/navigation'; import * as React from 'react'; import { useForm, useFieldArray } from 'react-hook-form'; import { fetcher } from '@/app/api/tools'; import useSWR from 'swr'; import { Dish } from '@/app/tools'; type FormDish = Dish & { filter: string; }; type FormValues = { status: number; client: string; realization_time: string; data: FormDish[]; }; export default function App() { const { data, error, isLoading } = useSWR('/api/meals', fetcher); const { id } = useParams(); const router = useRouter(); const { register, control, handleSubmit, formState: { errors }, getValues, setValue, watch, } = useForm({ defaultValues: { status: 2, client: '', realization_time: new Date().toLocaleTimeString('pl-PL', { hour: '2-digit', minute: '2-digit', }), data: [ { item: '', additional_info: '', finished: false, takeout: false, times: 1, filter: '', }, ], }, mode: 'all', criteriaMode: 'all', shouldFocusError: true }); const { fields, append, remove } = useFieldArray({ name: 'data', control, }); const onSubmit = (data: FormValues) => { fetch('/api/orders', { method: 'POST', body: JSON.stringify({ waiter: id, ...data }), headers: { 'Content-Type': 'application/json', }, }) .then(({ status }) => console.log(status)) .then(() => router.push(`/waiter/${id}`)); }; if (error) return
Błąd przy ładowaniu danych
; if (isLoading) return
Ładowanie
; watch('data') return ( <>

Nowe zamówienie

{fields.map((field, index) => { return (
setValue(`data.${index}.item`, data ?.filter((data: { id: number; name: string }) => data.name .toLowerCase() .includes( e.target.value.toLowerCase() ) )[0].name, {shouldValidate: true})} />