import React from 'react' import { useField } from 'formik' import './FieldInput.scss' interface FieldInputProps { name: string } const preSelectable = { method_id: 'Verzendoptie code', method_title: 'Verzendoptie naam', payment_method: 'Betaalmethode type', payment_method_title: 'Betaalmethode naam', total: 'Order totaal', status: 'Order status', created_via: 'Aangemaakt via', } const selectableKeys = Object.keys(preSelectable) as Array< keyof typeof preSelectable > const FieldInput: React.FC = ({ name }) => { const [field, , helpers] = useField(name) const [isEditable, setEditable] = React.useState( field.value && !selectableKeys.includes(field.value), ) const handleSelectChanged = React.useCallback( (event: React.ChangeEvent) => { const { target: { value }, } = event const isNormalSelection = selectableKeys.includes( value as keyof typeof preSelectable, ) if (isNormalSelection) { helpers.setValue(value) if (isEditable) { setEditable(false) } } else { helpers.setValue('') setEditable(true) } }, [helpers, isEditable], ) return (
) } export default FieldInput