import React, {useState} from 'react'; import { SubmitInput } from './SubmitInput'; type EditableValueProps = { value: string; setValue: (key: string, value: string | number) => Promise; field: string; type: 'text' | 'number'; } const EditableValue: React.FC = ({ setValue, field, value: currentValue, type }) => { const [active, setActive] = useState(false); const submit = (value: string | number) => { if (value === currentValue) { setActive(false); return; } setValue(field, value).then(() => { setActive(false); }); }; if (active) { return submit(type === 'number' ? parseInt(value) : value)} onClick={event => event.stopPropagation()} initialValue={currentValue} type={type} focus={true} />; } function onClick(ev) { ev.stopPropagation(); setActive(true); } return {currentValue}; }; export default EditableValue;