import { type FunctionComponent, memo } from 'react'; import { Badge, Modal } from '@/components'; import { LOCALE_FEATURES } from '@/i18n'; import { getTileSizes } from '@/lib'; import { REMAINING_TILES_TILE_SIZE } from '@/parameters'; import { selectLocale, useTranslate, useTypedSelector } from '@/state'; import { Character } from './components'; import styles from './RemainingTilesModal.module.scss'; import { selectRemainingTilesGroups } from './selectors'; interface Props { className?: string; isOpen: boolean; onClose: () => void; } const RemainingTilesModalBase: FunctionComponent = ({ className, isOpen, onClose }) => { const translate = useTranslate(); const locale = useTypedSelector(selectLocale); const groups = useTypedSelector(selectRemainingTilesGroups); const { tileFontSize } = getTileSizes(REMAINING_TILES_TILE_SIZE); const { direction } = LOCALE_FEATURES[locale]; return ( {groups.map(({ remainingCount, tiles, translationKey, totalCount }) => { const current = direction === 'ltr' ? remainingCount : totalCount; const total = direction === 'ltr' ? totalCount : remainingCount; return ( {translate(translationKey)} {current.toLocaleString(locale)} / {total.toLocaleString(locale)} } >
{tiles.map((tile) => { return (
); })}
); })}
); }; export const RemainingTilesModal = memo(RemainingTilesModalBase);