diff --git a/src/components/game/tabs/SkillsTab.tsx b/src/components/game/tabs/SkillsTab.tsx index 24b038e..92e4d97 100644 --- a/src/components/game/tabs/SkillsTab.tsx +++ b/src/components/game/tabs/SkillsTab.tsx @@ -14,6 +14,7 @@ import { Badge } from '@/components/ui/badge'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'; import { StudyProgress } from './StudyProgress'; import { UpgradeDialog } from './UpgradeDialog'; +import { ChevronDown, ChevronRight } from 'lucide-react'; export interface SkillsTabProps { store: GameStore; @@ -55,10 +56,24 @@ export function SkillsTab({ store }: SkillsTabProps) { const [upgradeDialogSkill, setUpgradeDialogSkill] = useState(null); const [upgradeDialogMilestone, setUpgradeDialogMilestone] = useState<5 | 10>(5); const [pendingUpgradeSelections, setPendingUpgradeSelections] = useState([]); + const [collapsedCategories, setCollapsedCategories] = useState>(new Set()); const studySpeedMult = getStudySpeedMultiplier(store.skills); const upgradeEffects = getUnifiedEffects(store); + // Toggle category collapse + const toggleCategory = (categoryId: string) => { + setCollapsedCategories(prev => { + const newSet = new Set(prev); + if (newSet.has(categoryId)) { + newSet.delete(categoryId); + } else { + newSet.add(categoryId); + } + return newSet; + }); + }; + // Get upgrade choices for dialog const getUpgradeChoices = () => { if (!upgradeDialogSkill) return { available: [] as SkillUpgradeChoice[], selected: [] as string[] }; @@ -138,13 +153,20 @@ export function SkillsTab({ store }: SkillsTabProps) { const skillsInCat = Object.entries(SKILLS_DEF).filter(([, def]) => def.cat === cat.id); if (skillsInCat.length === 0) return null; + const isCollapsed = collapsedCategories.has(cat.id); + return ( - - - {cat.icon} {cat.name} + toggleCategory(cat.id)}> + + {cat.icon} {cat.name} +
+ {skillsInCat.length} skills + {isCollapsed ? : } +
+ {!isCollapsed && (
{skillsInCat.map(([id, def]) => { @@ -337,6 +359,7 @@ export function SkillsTab({ store }: SkillsTabProps) { })}
+ )}
); });