'use client'; import { useState, useEffect } from 'react'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Badge } from '@/components/ui/badge'; import { DebugName } from '@/components/game/debug/debug-context'; import { SPELLS_DEF } from '@/lib/game/constants'; import type { SpellDef } from '@/lib/game/types'; export function GrimoireTab() { const [grimoireSpells, setGrimoireSpells] = useState<[string, SpellDef][]>([]); const [loaded, setLoaded] = useState(false); useEffect(() => { if (typeof window !== 'undefined' && SPELLS_DEF) { setGrimoireSpells( Object.entries(SPELLS_DEF).filter((entry): entry is [string, SpellDef] => !!entry[1].grimoire) ); } setLoaded(true); }, []); if (!loaded) { return
A vast tome of arcane knowledge. Study carefully — each spell costs insight to transcribe into your repertoire.
Available pages: {availablePages}. Spells in grimoire: {grimoireSpells.length}.
{spell.desc}
}