import { createItem } from "@/gen/utils"; import get from "lodash.get"; import { FC, isValidElement, useEffect } from "react"; import { FMLocal, FieldLocal, FieldProp, FieldTypeCustom } from "../typings"; import { genFieldMitem, updateFieldMItem } from "../utils/gen-mitem"; import { fieldMapping } from "./mapping"; import { FieldLoading } from "./raw/FieldLoading"; import { TypeCustom } from "./type/TypeCustom"; import { FieldTypeText, PropTypeText } from "./type/TypeText"; import { TypeDropdown } from "./type/TypeDropdown"; import { FieldToggle } from "./type/TypeToggle"; import { SingleOption } from "./type/TypeSingleOption"; import { MultiOption } from "./type/TypeMultiOption"; const modify = { timeout: null as any, }; export const FieldInput: FC<{ field: FieldLocal; fm: FMLocal; PassProp: any; child: any; _item: any; _meta: any; _sync: (mitem: any, item: any) => void; arg: FieldProp; }> = ({ field, fm, PassProp, child, _meta, _item, _sync, arg }) => { // return <> const prefix = typeof field.prefix === "function" ? field.prefix() : typeof field.prefix === "string" ? field.prefix : null; const suffix = typeof field.suffix === "function" ? field.suffix() : typeof field.suffix === "string" ? field.prefix : null; const name = typeof field.name === 'function' ? field.name() : field.name; const errors = fm.error.get(name); let type_field = typeof arg.type === 'function' ? arg.type() : arg.type; // tipe field 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` & > .field-inner { min-height: 35px; } ` )} > {prefix && prefix !== "" ? (
{prefix}
) : ( <> )} {fm.status === "loading" ? ( ) : (
{[ "date", "input" ].includes(type_field) ? ( ) : ["single-option"].includes(type_field) ? ( ) : ["multi-option"].includes(type_field) ? ( ) : ( <>{isValidElement(type_field) && type_field} )}
)} {suffix && suffix !== "" ? (
{suffix}
) : ( <> )}
); };