import { useLocal } from "@/utils/use-local"; import { FC } from "react"; import { BaseField } from "./BaseField"; import { initSimpleForm as initBaseForm } from "./utils/init"; import { BaseFieldProps, BaseFormProps } from "./utils/type/field"; type Children> = Exclude< BaseFormProps["children"], undefined >; export const BaseForm = >( arg: BaseFormProps ) => { const fm = useLocal({ status: "init" } as any); const local = useLocal({ Field: null as null | FC>, children: null as unknown as Children, }); if (fm.status === "init") { local.Field = (props) => { return ; }; if (arg.children) local.children = arg.children; else { local.children = ({ Field }) => { const data = Object.entries(fm.data); return ( <> {data.map(([key, value]) => { return ; })} ); }; } initBaseForm(fm, arg); } return (
{ e.preventDefault(); fm.submit(); }} > {local.Field && local.children({ Field: local.Field })}
); };