import { useState } from 'react'; import { useGameState } from './hooks/useGameState'; import { ClickButton } from './components/ClickButton'; import { UpgradePanel } from './components/UpgradePanel'; import { StatsPanel } from './components/StatsPanel'; import { AchievementsPanel } from './components/AchievementsPanel'; import { formatNumber } from './utils/formatNumber'; export function App() { const { gameState, floatingNumbers, handleClick, buyUpgrade, getUpgradeCost, resetGame } = useGameState(); const [showResetConfirm, setShowResetConfirm] = useState(false); const [activeTab, setActiveTab] = useState<'upgrades' | 'achievements'>('upgrades'); return (
{/* Animated background */}
{/* Main content */}
{/* Header */}

Generic Clicker 2.0

The ultimate clicking experience™

{/* Points display */}

{formatNumber(gameState.points)}

+{formatNumber(gameState.pointsPerSecond * gameState.multiplier)}/sec

{/* Reset button */}
{/* Game area */}
{/* Left panel - Stats */}
{/* Mobile tabs */}
{/* Center - Click button */}
{/* Right panel - Upgrades/Achievements */}
{/* Desktop: show both */}
{/* Mobile: tabbed */}
{activeTab === 'upgrades' ? ( ) : ( )}
{/* Desktop achievements - below main area */}
{/* Footer */}
Game auto-saves every 5 seconds 💾
{/* Reset confirmation modal */} {showResetConfirm && (

Reset Game?

This will delete all your progress. Are you sure?

)} {/* Custom styles for floating animation */}
); }