import React from "react"; import { Input, Button } from "antd"; import { useFormikContext } from "formik"; import { useTranslation } from "react-i18next"; interface FieldGroupProps { array_name: string; title:string; static?: boolean; only_value?: boolean; } const FieldGroup: React.FC = ({ array_name ,title,static:isStatic,only_value}) => { const { values, setFieldValue } = useFormikContext(); const addFieldGroup = () => { setFieldValue(array_name, [ ...(values?.[array_name] || []), { key: null, value: null }, ]); }; const deleteFieldGroup = () => { const updatedArray = values?.[array_name]?.slice(0, -1) || []; setFieldValue(array_name, updatedArray); }; const handleChangeKey = ( e: React.ChangeEvent, index: number ) => { const Selects = values?.[array_name] ?? []; Selects[index].key = e.target.value; setFieldValue(array_name, Selects); }; const handleChangeValue = ( e: React.ChangeEvent, index: number ) => { const Selects = values?.[array_name] ?? []; Selects[index].value = e.target.value; setFieldValue(array_name, Selects); }; const selectsArray = values?.[array_name] ?? []; const { t } = useTranslation(); return ( <> {selectsArray.map((group: { key: string; value: string }, index: number) => (
handleChangeKey(e, index)} value={group.key} size="large" style={{ width: "100%" }} allowClear disabled={only_value} /> handleChangeValue(e, index)} value={group.value} size="large" style={{ width: "100%" }} allowClear />
))} {!isStatic &&
} ); }; export default FieldGroup;