TCG
@@ -110,6 +153,7 @@ export default function Layout({ children, user = { email: 'me@randallstillwell.
backgroundColor: item.active ? 'var(--bg-tertiary)' : 'transparent',
color: item.active ? 'var(--text-primary)' : 'var(--text-secondary)'
}}
+ onClick={() => setIsMobileMenuOpen(false)}
>
{getIcon(item.icon)}
@@ -178,6 +222,7 @@ export default function Layout({ children, user = { email: 'me@randallstillwell.
backgroundColor: item.active ? 'var(--bg-tertiary)' : 'transparent',
color: item.active ? 'var(--text-primary)' : 'var(--text-secondary)'
}}
+ onClick={() => setIsMobileMenuOpen(false)}
>
{getIcon(item.icon)}
{item.name}
@@ -190,7 +235,7 @@ export default function Layout({ children, user = { email: 'me@randallstillwell.
{/* Main Content */}
-
+
{/* Top Header - Only show search on dashboard */}
{showSearch && (
diff --git a/pages/cards.js b/pages/cards.js
index 497d40d..bf5dae3 100644
--- a/pages/cards.js
+++ b/pages/cards.js
@@ -816,20 +816,34 @@ export default function Cards() {
) : (
<>
-
- {cards.map(card => (
-
c.id === card.id)}
- onToggleSelect={handleToggleSelect}
- onAddToCollection={(card) => handleBulkAddToCollection([card])}
- onAddToDeck={handleBulkAddToDeck}
- onToggleFavorite={handleToggleFavorite}
- isFavorited={favoritedCards.has(card.id)}
- />
- ))}
+
+ {cards.map((card, index) => {
+ // Calculate cards per row based on current breakpoint
+ const getCardsPerRow = () => {
+ if (window.innerWidth >= 1536) return 5; // 2xl
+ if (window.innerWidth >= 1280) return 4; // xl
+ if (window.innerWidth >= 1024) return 3; // lg
+ if (window.innerWidth >= 768) return 4; // md
+ if (window.innerWidth >= 640) return 3; // sm
+ return 2; // base
+ };
+
+ return (
+ c.id === card.id)}
+ onToggleSelect={handleToggleSelect}
+ onAddToCollection={(card) => handleBulkAddToCollection([card])}
+ onAddToDeck={handleBulkAddToDeck}
+ onToggleFavorite={handleToggleFavorite}
+ isFavorited={favoritedCards.has(card.id)}
+ cardIndex={index}
+ cardsPerRow={getCardsPerRow()}
+ />
+ );
+ })}
{/* Infinite Scroll Loading Indicator */}