import { Skeleton } from "@/comps/ui/skeleton"; import get from "lodash.get"; import { FC, useEffect } from "react"; import { FMLocal, FieldLocal } from "../typings"; import { fieldMapping } from "./mapping"; import { Loader2 } from "lucide-react"; import { genFieldMitem } from "../utils/gen-mitem"; const modify = { timeout: null as any, }; export const FieldInput: FC<{ field: FieldLocal; fm: FMLocal; PassProp: any; child: any; _item: any; _meta: any; }> = ({ field, fm, PassProp, child, _meta, _item }) => { const prefix = typeof field.prefix === "function" ? field.prefix() : null; const suffix = typeof field.suffix === "function" ? field.suffix() : null; const errors = fm.error.get(field.name); const childs = get( child, "props.meta.item.component.props.child.content.childs" ); let found = null as any; if (childs && childs.length > 0) { for (const child of childs) { if (child.component?.id === fieldMapping[field.type].id) { found = child; } } } useEffect(() => { if (isEditor && !found) { genFieldMitem({ _meta, _item, field, fm }); } }, []); return (
0 ? field.focused ? "c-border-red-600 c-bg-red-50 c-outline c-outline-red-700" : "c-border-red-600 c-bg-red-50" : field.focused && "c-border-blue-700 c-outline c-outline-blue-700", css` > div { min-height: 35px; line-height: 35px; } ` )} > {prefix && <>} {fm.status === "loading" ? (
) : (
{!found && } {found && ( {found} )}
)} {suffix && <>}
); };