millelibri/frontend/src/components/SearchLanguage.tsx

54 lines
1.8 KiB
TypeScript

import {
Icon,
IconButton,
Input,
InputGroup,
InputLeftElement,
InputRightElement,
Select,
useControllableState
} from '@chakra-ui/react';
import React from 'react';
import { TbCircleX } from 'react-icons/tb';
import { useTranslation } from 'react-i18next';
interface SearchInputProps {
icon: React.ReactNode;
placeholder: string;
value?: string;
onChange?: (value: string) => void;
}
const SearchLanguage: React.FC<SearchInputProps> = ({ placeholder, icon, value, onChange }) => {
const [controlledValue, setControlledValue] = useControllableState({
value,
onChange,
defaultValue: ''
});
const { t } = useTranslation();
return (
<InputGroup>
<InputLeftElement pointerEvents="none" children={icon} />
<Select defaultValue={''} className={value !== '' ? 'active' : ''} placeholder={placeholder} onChange={(e) => setControlledValue(e.target.value)}>
<option value={"Chinese"}>{t('languages.chinese')}</option>
<option value={"English"}>{t('languages.english')}</option>
<option value={"French"}>{t('languages.french')}</option>
<option value={"German"}>{t('languages.german')}</option>
<option value={"Japanese"}>{t('languages.japanese')}</option>
<option value={"Italian"}>{t('languages.italian')}</option>
<option value={"Portuguese"}>{t('languages.portuguese')}</option>
<option value={"Spanish"}>{t('languages.spanish')}</option>
<option value={"Other"}>{t('languages.other')}</option>
<option value={"input"}>{t('languages.input')}</option>
</Select>
</InputGroup>
);
};
export default SearchLanguage;