don't present cards from hand in CardSelect

This commit is contained in:
Gavin McDonald
2025-06-12 18:27:29 -04:00
parent 12427efc7e
commit 97f23c35dd
2 changed files with 23 additions and 16 deletions

View File

@@ -141,9 +141,10 @@ export default function GamePage() {
</div> </div>
<Notes gameData={gameData} show={cards.every(({ flipped }) => flipped)} /> <Notes gameData={gameData} show={cards.every(({ flipped }) => flipped)} />
<CardSelect <CardSelect
closeAction={() => setSelectCard(-1)}
settings={settings}
show={selectDeck} show={selectDeck}
hand={cards}
settings={settings}
closeAction={() => setSelectCard(-1)}
selectAction={(cardID) => select(selectCard, cardID)} selectAction={(cardID) => select(selectCard, cardID)}
/> />
</main> </main>

View File

@@ -4,13 +4,14 @@ import { CircleX } from 'lucide-react';
import TarokkaDeck from '@/lib/TarokkaDeck'; import TarokkaDeck from '@/lib/TarokkaDeck';
import getURL from '@/tools/getURL'; import getURL from '@/tools/getURL';
import { Deck, Settings } from '@/types'; import { Deck, Settings, TarokkaGameCard } from '@/types';
const tarokkaDeck = new TarokkaDeck(); const tarokkaDeck = new TarokkaDeck();
type CardSelectProps = { type CardSelectProps = {
closeAction: () => void; closeAction: () => void;
selectAction: (cardID: string) => void; selectAction: (cardID: string) => void;
hand: TarokkaGameCard[];
settings: Settings; settings: Settings;
show: Deck | null; show: Deck | null;
className?: string; className?: string;
@@ -19,10 +20,13 @@ type CardSelectProps = {
export default function CardSelect({ export default function CardSelect({
closeAction, closeAction,
selectAction, selectAction,
hand,
settings, settings,
show, show,
className = '', className = '',
}: CardSelectProps) { }: CardSelectProps) {
const handIDs = hand.map(({ id }) => id);
const handleClose = (event: React.MouseEvent<HTMLElement>) => { const handleClose = (event: React.MouseEvent<HTMLElement>) => {
if (event.target === event.currentTarget) { if (event.target === event.currentTarget) {
closeAction(); closeAction();
@@ -48,19 +52,21 @@ export default function CardSelect({
onClick={handleClose} onClick={handleClose}
className={`flex flex-wrap justify-center items-center gap-3 h-dvh w-2/3 overflow-scroll scrollbar-hide p-4`} className={`flex flex-wrap justify-center items-center gap-3 h-dvh w-2/3 overflow-scroll scrollbar-hide p-4`}
> >
{cards.map((card) => ( {cards
<div .filter(({ id }) => !handIDs.includes(id))
key={card.id} .map((card) => (
className={`relative h-[21vh] w-[15vh] perspective transition-transform duration-200 hover:scale-150 z-0 hover:z-10`} <div
onClick={() => selectAction(card.id)} key={card.id}
> className={`relative h-[21vh] w-[15vh] perspective transition-transform duration-200 hover:scale-150 z-0 hover:z-10`}
<img onClick={() => selectAction(card.id)}
src={getURL(card, settings)} >
alt={card.aria} <img
className="rounded-lg border border-yellow-500/25 hover:drop-shadow-[0_0_3px_#ffd700/50]" src={getURL(card, settings)}
/> alt={card.aria}
</div> className="rounded-lg border border-yellow-500/25 hover:drop-shadow-[0_0_3px_#ffd700/50]"
))} />
</div>
))}
</div> </div>
</div> </div>
); );