import React, { useState } from 'react'; import { FinesCard } from './FinesCard'; import { Button } from '@/components/ui/button'; import { Label } from '@/components/ui/label'; import { RefreshCcw } from 'lucide-react'; const FinesCardDebug = (initialProps) => { const sampleData = [ { name: 'Excesso de Velocidade', value: 450.00, color: '#ef4444' }, // Red { name: 'Estacionamento Irregular', value: 250.00, color: '#f59e0b' }, // Amber { name: 'Documentação', value: 150.00, color: '#3b82f6' }, // Blue ]; const totalSampleValue = sampleData.reduce((acc, curr) => acc + curr.value, 0); // Helper to generate consistent data const generateChartData = (period, current, previous) => { if (period === '30d') { return [ { name: 'Sem 1', value: previous * 0.8 }, { name: 'Sem 2', value: previous * 1.1 }, { name: 'Sem 3', value: previous * 0.9 }, { name: 'Atual', value: current, active: true } // Highlighted ]; } if (period === '60d') { return [ { name: 'Mês -1', value: previous * 0.9 }, { name: 'Anterior', value: previous }, { name: 'Atual', value: current, active: true } ]; } if (period === '120d') { return [ { name: 'Mês -3', value: previous * 1.2 }, { name: 'Mês -2', value: previous * 0.8 }, { name: 'Anterior', value: previous }, { name: 'Atual', value: current, active: true } ]; } return []; }; const [state, setState] = useState(() => { const initialCurrent = 850; const initialPrev = 1100; return { currentValue: initialCurrent, currentCount: 3, previousValue: initialPrev, previousCount: 6, hasData: true, isLoading: false, period: '30d', data: sampleData, monthlyData: generateChartData('30d', initialCurrent, initialPrev), ...initialProps }; }); const toggleData = () => { setState(prev => ({ ...prev, hasData: !prev.hasData, currentValue: !prev.hasData ? totalSampleValue : 0, currentCount: !prev.hasData ? 3 : 0 })); }; const handlePeriodChange = (p) => { console.log('Period Changed:', p); // Simulate API logic: distinct values for each period let newCurrent, newPrev, newCount; if (p === '30d') { newCurrent = 850; newPrev = 1100; newCount = 3; } else if (p === '60d') { newCurrent = 1450; newPrev = 1200; newCount = 5; } else if (p === '120d') { newCurrent = 2100; newPrev = 1800; newCount = 8; } else { newCurrent = 0; newPrev = 0; newCount = 0; } setState(prev => ({ ...prev, period: p, // Update the period in state currentValue: newCurrent, previousValue: newPrev, currentCount: newCount, monthlyData: generateChartData(p, newCurrent, newPrev) })); }; const updatePrevValue = (e) => { const val = Number(e.target.value); setState(prev => ({ ...prev, previousValue: val, monthlyData: generateChartData(prev.period, prev.currentValue, val) })); }; return (
Alterna entre estado vazio e populado