/** * TypeBadges - Main component for type badge filtering * Auto-collects unique type_name values and shows counts * Badges disappear when all videos of that type are removed * Responsive: Desktop shows expand/collapse, Mobile shows horizontal scroll */ 'use client'; import { memo } from 'react'; import { Card } from '@/components/ui/Card'; import { Icons } from '@/components/ui/Icon'; import { TypeBadgeList } from './TypeBadgeList'; import type { TypeBadge } from '@/lib/types'; interface TypeBadgesProps { badges: TypeBadge[]; selectedTypes: Set; onToggleType: (type: string) => void; className?: string; } export const TypeBadges = memo(function TypeBadges({ badges, selectedTypes, onToggleType, className = '' }: TypeBadgesProps) { if (badges.length === 0) { return null; } const handleClearAll = () => { selectedTypes.forEach(type => onToggleType(type)); }; return (
分类标签 ({badges.length}):
{selectedTypes.size > 0 && (
)}
); });