import { useCallback } from 'react'; import { Input, InputProps } from '@chakra-ui/react'; import useReactiveTextInput from '../../../common/components/input/text-input/useReactiveTextInput'; import { EditorUpdateFields } from '../EventEditor'; import style from '../EventEditor.module.scss'; interface CountedTextInputProps extends InputProps { field: EditorUpdateFields; label: string; initialValue: string; submitHandler: (field: EditorUpdateFields, value: string) => void; } export default function CountedTextInput(props: CountedTextInputProps) { const { field, label, initialValue, submitHandler, maxLength } = props; const submitCallback = useCallback((newValue: string) => submitHandler(field, newValue), [field, submitHandler]); const { value, onChange, onBlur, onKeyDown } = useReactiveTextInput(initialValue, submitCallback, { submitOnEnter: true, }); return (
{`${value.length} characters`}
); }