import { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { OptimizedImage } from '../components/OptimizedImage/OptimizedImage'; import { MagicCodeInput } from '../components/MagicCodeInput/MagicCodeInput'; import { getAppliedMagicCode } from '../services/magicCodeService'; import { getEnabledApps } from '../utils/appFilter'; const categoryEmojis: { [key: string]: string } = { videos: '📺', speechsounds: '🗣️', tictactoe: '⭕', all: '🎮', }; const categoryColors: { [key: string]: string } = { videos: 'pink', speechsounds: 'purple', tictactoe: 'blue', drawingpad: 'amber', }; const colorMap: { [key: string]: string } = { pink: 'bg-pink-100 hover:bg-pink-200', purple: 'bg-purple-100 hover:bg-purple-200', blue: 'bg-blue-100 hover:bg-blue-200', green: 'bg-green-100 hover:bg-green-200', indigo: 'bg-indigo-100 hover:bg-indigo-200', amber: 'bg-amber-100 hover:bg-amber-200', }; export function LandingPage() { const [showMagicCodeModal, setShowMagicCodeModal] = useState(false); const [enabledApps, setEnabledApps] = useState(getEnabledApps()); const appliedCode = getAppliedMagicCode(); // Re-check enabled apps when magic code is applied/cleared useEffect(() => { setEnabledApps(getEnabledApps()); }, [appliedCode]); return (
{showMagicCodeModal && (
{ setShowMagicCodeModal(false); setEnabledApps(getEnabledApps()); }} onClose={() => setShowMagicCodeModal(false)} />
)}
{!appliedCode && (
)} {/* First card is likely LCP element - prioritize it */}
{enabledApps.map(app => { const color = categoryColors[app.id] || 'pink'; const emoji = categoryEmojis[app.id] || '🎮'; return (
{app.id === 'videos' ? ( ) : app.id === 'speechsounds' ? ( ) : app.id === 'tictactoe' ? ( ) : app.id === 'drawingpad' ? ( ) : ( {emoji} )}

{app.name}

{app.description}

); })}
); }