import { useCallback } from 'react'; import { Input, InputProps } from '@chakra-ui/react'; import { sanitiseCue } from 'ontime-utils'; 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, sanitiseCue(newValue)), [field, submitHandler], ); const { value, onChange, onBlur, onKeyDown } = useReactiveTextInput(initialValue, submitCallback, { submitOnEnter: true, }); return (
{`${value.length} characters`}
); }