"use client"; import { FC } from "react"; import { useFormState } from "react-dom"; import { Grid } from "@mui/material"; import { TextField, Select, MultiValueField } from "ui"; import { Create as InternalCreate } from "@/app/_components/Create"; import { generateCreateAction } from "@/app/_lib/actions"; import { serviceConfig } from "@/app/_config/config"; import { FieldDescription } from "@/app/_lib/service"; type CreateProps = { service: string; }; export const Create: FC = ({ service }) => { const { [service]: { entity, table, displayName, createFields }, } = serviceConfig; const fields = createFields.map((field: any) => { const copy = { ...field }; Object.keys(copy).forEach((key: any) => { if (typeof copy[key] === "function") { delete copy[key]; } }); return copy; }); const createAction = generateCreateAction({ entity, table, fields }); const initialState = { message: null, errors: {}, values: fields.reduce( (acc: Record, field: FieldDescription) => { acc[field.name] = field.defaultValue; return acc; }, {}, ), }; const [formState, formAction] = useFormState(createAction, initialState); return ( {createFields.map( (field) => !field.hidden && ( {field.kind === "select" && (