import { makeStyles } from '@material-ui/styles'; import React, { useCallback } from 'react'; import { WithTranslation } from 'react-i18next'; import { translate } from '../../base/i18n/functions'; import Icon from '../../base/icons/components/Icon'; import { IconCheck } from '../../base/icons/svg'; import { Theme } from '../../base/ui/types'; interface ILanguageListItemProps extends WithTranslation { /** * Whether or not the button should be full width. */ lang: string; /** * Click callback. */ onLanguageSelected: (lang: string) => void; /** * The id of the button. */ selected?: boolean; } const useStyles = makeStyles((theme: Theme) => { return { itemContainer: { display: 'flex', color: theme.palette.text01, alignItems: 'center', fontSize: '14px' }, iconWrapper: { margin: '4px 10px', width: '22px', height: '22px' }, activeItemContainer: { fontWeight: 700 } }; }); /** * Component that renders the language list item. * * @returns {React$Element} */ const LanguageListItem = ({ t, lang, selected, onLanguageSelected }: ILanguageListItemProps) => { const styles = useStyles(); const onLanguageSelectedWrapper = useCallback(() => onLanguageSelected(lang), [ lang ]); return (
{ selected && } { t(lang) }
); }; export default translate(LanguageListItem);