import React, { useCallback, useContext, useEffect, useRef } from 'react'; import { Context } from './Context'; export interface SearchBarProps { autoFocus: boolean; onChange: (query: string, event: React.ChangeEvent) => void; onKeyUp: (event: React.KeyboardEvent) => void; searchQuery: string; } export function SearchBar({ autoFocus, searchQuery, onChange, onKeyUp }: SearchBarProps) { const { classNames, messages } = useContext(Context); const ref = useRef(null); useEffect(() => { if (autoFocus && ref.current) { ref.current.focus(); } }, [autoFocus]); const handleChange = useCallback( (event: React.ChangeEvent) => { // Check if were still mounted if (ref.current) { onChange(event.target.value.trim(), event); } }, [onChange], ); return (
); }