import React, { useMemo, useCallback } from 'react' import classNames from 'classnames' import { Rarity } from '@dcl/schemas' import { Box } from '../Box' import { InfoTooltip } from '../InfoTooltip' import { useTabletAndBelowMediaQuery } from '../../components/Media' import { ArrayFilter } from '../ArrayFilter' import { RarityFilterProps } from './RarityFilter.types' import './RarityFilter.css' const RarityFilter = (props: RarityFilterProps) => { const { onChange, rarities, i18n, className, defaultCollapsed = false } = props const isMobileOrTablet = useTabletAndBelowMediaQuery() const rarityOptions = useMemo(() => { const options = Object.values(Rarity) .filter((value) => typeof value === 'string') .reverse() as string[] return options.map((rarity) => ({ value: rarity, text: i18n.rarities[rarity as Rarity] })) }, []) const handleRaritiesChange = useCallback( (newValue: string[]) => { onChange(newValue as Rarity[]) }, [onChange] ) const allRaritiesSelected = rarities.length === 0 || rarities.length === rarityOptions.length const header = useMemo( () => (
{!isMobileOrTablet ? ( <>
{i18n.title}
) : ( <> {i18n.title} {allRaritiesSelected ? i18n.all_rarities : i18n.count_rarities(rarities.length)} )}
), [rarities, isMobileOrTablet, allRaritiesSelected] ) return ( ) } export { RarityFilter }