import { useCallback, useState, useEffect, useRef } from 'react'; import { FormattedMessage } from 'react-intl'; export const ColumnSearchHeader: React.FC<{ onBack: () => void; onSubmit: (value: string) => void; onActivate: () => void; placeholder: string; active: boolean; }> = ({ onBack, onActivate, onSubmit, placeholder, active }) => { const inputRef = useRef(null); const [value, setValue] = useState(''); useEffect(() => { if (!active) { setValue(''); } }, [active]); const handleChange = useCallback( ({ target: { value } }: React.ChangeEvent) => { setValue(value); onSubmit(value); }, [setValue, onSubmit], ); const handleKeyUp = useCallback( (e: React.KeyboardEvent) => { if (e.key === 'Escape') { e.preventDefault(); onBack(); inputRef.current?.blur(); } }, [onBack], ); const handleFocus = useCallback(() => { onActivate(); }, [onActivate]); const handleSubmit = useCallback(() => { onSubmit(value); }, [onSubmit, value]); return (
{active && ( )}
); };