'use client'; import { useMemo, useState } from 'react'; import { CircleX, ScrollText } from 'lucide-react'; import { useAppContext } from '@/app/AppContext'; import CopyButton from '@/components/CopyButton'; import Scrim from '@/components/Scrim'; import { getCardInfo } from '@/tools'; import { cardMap, layout } from '@/constants/tarokka'; export default function Notes() { const { gameData } = useAppContext(); const { dmID, cards, settings } = gameData; const isDM = !!dmID; const show = cards.every(({ flipped }) => flipped); const [open, setOpen] = useState(false); const notes: (string[] | undefined)[] = useMemo( () => Array.from({ length: 9 }) .map((_cell: unknown, index: number) => cards[cardMap[index]]) .map((card, index) => card ? getCardInfo(card, layout[cardMap[index]], isDM, settings) : null, ) .map( (_cell: unknown, index: number, cards) => cards[Object.keys(cardMap).find((key) => cardMap[key] === index) || 0], ) .filter((truthy) => truthy), [cards, isDM, settings], ); const showNotes = show && open && (isDM || settings.notes); return (
setOpen((prev) => !prev)} className={`transition-all duration-250 ${showNotes ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0'}`} >
note!.join('\n')).join('\n\n')} className={` absolute top-2 right-2 cursor-pointer p-2 transition-all duration-250 text-yellow-400 hover:text-yellow-300 hover:drop-shadow-[0_0_3px_#ffd700] `} />
{notes.map((note, index) => (
{note!.map((blurb, index) => (

{blurb}

))}
{index < notes.length - 1 &&
}
))}
); }