import React, { useState } from 'react'; import NavBar from '@/components/NavBar'; import ExpenseChart from '@/components/ExpenseChart'; import AddTransactionButton from '@/components/AddTransactionButton'; import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, Legend } from 'recharts'; import { ChevronLeft, ChevronRight } from 'lucide-react'; const Analytics = () => { const [selectedPeriod, setSelectedPeriod] = useState('이번 달'); // Updated expense categories with green color scheme const expenseData = [{ name: '식비', value: 350000, color: '#81c784' // Green (matching neuro-income) }, { name: '생활비', value: 650000, color: '#AED581' // Light green }, { name: '교통비', value: 175000, color: '#2E7D32' // Dark green (replacing yellow) }]; // Sample data for the monthly comparison - renamed income to budget const monthlyData = [{ name: '3월', budget: 2400000, expense: 1800000 }, { name: '4월', budget: 2300000, expense: 1700000 }, { name: '5월', budget: 2700000, expense: 1900000 }, { name: '6월', budget: 2200000, expense: 1500000 }, { name: '7월', budget: 2500000, expense: 1650000 }, { name: '8월', budget: 2550000, expense: 1740000 }]; // Updated variable names to match new terminology const totalBudget = 2550000; const totalExpense = 1740000; const savings = totalBudget - totalExpense; const savingsPercentage = Math.round(savings / totalBudget * 100); // Custom formatter for Y-axis that removes currency symbol and uses K format const formatYAxisTick = (value: number) => { return `${Math.round(value / 1000)}K`; }; // Custom formatter for tooltip that keeps the original formatting with currency symbol const formatTooltip = (value: number | string) => { if (typeof value === 'number') { return new Intl.NumberFormat('ko-KR', { style: 'currency', currency: 'KRW', maximumFractionDigits: 0 }).format(value); } return value; }; return
예산
{new Intl.NumberFormat('ko-KR', { style: 'currency', currency: 'KRW', notation: 'compact', maximumFractionDigits: 1 }).format(totalBudget)}
지출
{new Intl.NumberFormat('ko-KR', { style: 'currency', currency: 'KRW', notation: 'compact', maximumFractionDigits: 1 }).format(totalExpense)}
저축
{savingsPercentage}%
{new Intl.NumberFormat('ko-KR', { style: 'currency', currency: 'KRW', maximumFractionDigits: 0 }).format(category.value)}
{Math.round(category.value / totalExpense * 100)}%