import { SearchIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { useTheme } from "styled-components"; import Input, { Props as InputProps } from "~/components/Input"; type Props = InputProps & { placeholder?: string; value?: string; onBlur?: (event: React.FocusEvent) => unknown; onFocus?: (event: React.FocusEvent) => unknown; onChange?: (event: React.ChangeEvent) => unknown; onKeyDown?: (event: React.KeyboardEvent) => unknown; }; function InputSearch( props: Props, ref: React.RefObject ) { const { t } = useTranslation(); const theme = useTheme(); const [isFocused, setIsFocused] = React.useState(false); const { placeholder = `${t("Search")}…`, onKeyDown, onBlur, onFocus, ...rest } = props; const handleFocus = React.useCallback( (event) => { setIsFocused(true); onFocus?.(event); }, [onFocus] ); const handleBlur = React.useCallback( (event) => { setIsFocused(false); onBlur?.(event); }, [onBlur] ); return ( } onKeyDown={onKeyDown} onFocus={handleFocus} onBlur={handleBlur} margin={0} labelHidden ref={ref} {...rest} /> ); } export default React.forwardRef(InputSearch);