'use client' import type { FC } from 'react' import React from 'react' import { useTranslation } from 'react-i18next' import cn from '@/utils/classnames' import exploreI18n from '@/i18n/en-US/explore' import type { AppCategory } from '@/models/explore' import { ThumbsUp } from '@/app/components/base/icons/src/vender/line/alertsAndFeedback' const categoryI18n = exploreI18n.category export type ICategoryProps = { className?: string list: AppCategory[] value: string onChange: (value: AppCategory | string) => void /** * default value for search param 'category' in en */ allCategoriesEn: string } const Category: FC = ({ className, list, value, onChange, allCategoriesEn, }) => { const { t } = useTranslation() const isAllCategories = !list.includes(value as AppCategory) || value === allCategoriesEn const itemClassName = (isSelected: boolean) => cn( 'flex h-[32px] cursor-pointer items-center rounded-lg border-[0.5px] border-transparent px-3 py-[7px] font-medium leading-[18px] text-text-tertiary hover:bg-components-main-nav-nav-button-bg-active', isSelected && 'border-components-main-nav-nav-button-border bg-components-main-nav-nav-button-bg-active text-components-main-nav-nav-button-text-active shadow-xs', ) return (
onChange(allCategoriesEn)} > {t('explore.apps.allCategories')}
{list.filter(name => name !== allCategoriesEn).map(name => (
onChange(name)} > {(categoryI18n as any)[name] ? t(`explore.category.${name}`) : name}
))}
) } export default React.memo(Category)