From a25fa4a94cd6b0d12b40cc9870864c48de873efa Mon Sep 17 00:00:00 2001 From: billy Date: Sun, 30 Mar 2025 15:03:50 -0400 Subject: [PATCH] Refactor components to utilize formatNumber utility for consistent number formatting across BuildingButton, NextBuildingPreview, ResourceDisplay, and App. Removed deprecated upgrades section in App for cleaner UI, enhancing overall user experience. --- src/App.tsx | 12 +------- src/components/BuildingButton.tsx | 13 ++++---- src/components/NextBuildingPreview.tsx | 5 ++-- src/components/ResourceDisplay.tsx | 11 +++---- src/utils/numberUtils.ts | 41 ++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 24 deletions(-) create mode 100644 src/utils/numberUtils.ts diff --git a/src/App.tsx b/src/App.tsx index 5e18d6e..9b61f79 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,7 @@ import { NextBuildingPreview } from './components/NextBuildingPreview' import { ResetButton } from './components/ResetButton' import { useGameStore } from './store/gameStore' import { playClickSound, initAudio } from './utils/soundUtils' +import { formatNumber } from './utils/numberUtils' import { ChakraProvider, Box, @@ -115,17 +116,6 @@ function App() { ))} - - - - {/* Upgrades Section */} - - Upgrades - - {/* Click Power button has been moved to ResourceDisplay header */} - {/* Add other upgrades here in the future */} - - diff --git a/src/components/BuildingButton.tsx b/src/components/BuildingButton.tsx index 72b834d..e93d7c8 100644 --- a/src/components/BuildingButton.tsx +++ b/src/components/BuildingButton.tsx @@ -11,6 +11,7 @@ import { AspectRatio } from '@chakra-ui/react' import { useGameStore } from '../store/gameStore' +import { formatNumber } from '../utils/numberUtils' // Import all building images import mouseImg from '../assets/mouse.png' @@ -96,7 +97,7 @@ export function BuildingButton({ if (owned === 0) { return "You need to own this building first"; } else if (points < upgradeCost) { - return `Not enough points (${points}/${upgradeCost})`; + return `Not enough points (${formatNumber(points)}/${formatNumber(upgradeCost)})`; } return `Upgrade to level ${level + 1}`; }; @@ -150,7 +151,7 @@ export function BuildingButton({ borderTopLeftRadius="md" borderBottomRightRadius="md" > - Owned: {owned} + Owned: {formatNumber(owned)} {/* Level badge */} @@ -172,8 +173,8 @@ export function BuildingButton({ Production: - Points: {(pointsPerSecond * level).toFixed(1)}/s per building - Total: {(pointsPerSecond * level * owned).toFixed(1)}/s + Points: {formatNumber(pointsPerSecond * level)}/s per building + Total: {formatNumber(pointsPerSecond * level * owned)}/s diff --git a/src/components/NextBuildingPreview.tsx b/src/components/NextBuildingPreview.tsx index d3155a4..ea8bfb9 100644 --- a/src/components/NextBuildingPreview.tsx +++ b/src/components/NextBuildingPreview.tsx @@ -7,6 +7,7 @@ import { } from '@chakra-ui/react' import { useGameStore } from '../store/gameStore' import { BUILDING_INFO } from '../store/gameStore' +import { formatNumber } from '../utils/numberUtils' interface BuildingInfo { cost: number @@ -48,12 +49,12 @@ export function NextBuildingPreview() { {info.description} - Cost: {info.cost} points + Cost: {formatNumber(info.cost)} points Level Required: {info.levelRequirement} Production: - Points: {info.production.points}/s + Points: {formatNumber(info.production.points || 0)}/s diff --git a/src/components/ResourceDisplay.tsx b/src/components/ResourceDisplay.tsx index 37f8633..fb72477 100644 --- a/src/components/ResourceDisplay.tsx +++ b/src/components/ResourceDisplay.tsx @@ -4,6 +4,7 @@ import logoImg from '../assets/logo.png' import { ResetButton } from './ResetButton' import { SoundToggleButton } from './SoundToggleButton' import { AddIcon } from '@chakra-ui/icons' +import { formatNumber } from '../utils/numberUtils' export function ResourceDisplay() { const { points, pointsPerSecond, clickPower, playerLevel, getClickPowerUpgradeCost, buyUpgrade } = useGameStore() @@ -87,8 +88,8 @@ export function ResourceDisplay() { {/* Points */} Points - {Math.floor(points)} - +{pointsPerSecond.toFixed(1)}/s + {formatNumber(Math.floor(points))} + +{formatNumber(pointsPerSecond)}/s @@ -97,8 +98,8 @@ export function ResourceDisplay() { Click Power - {clickPower} - + {formatNumber(clickPower)} +