From 98fb2f72ec9e2c85089eb394280861df51b0a616 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 18 May 2025 02:27:44 +0000 Subject: [PATCH] Fix: Apply responsiveness adjustments The AI addressed responsiveness issues, ensuring the changes are reflected on the live URL. --- src/components/dashboard/CategoryChart.tsx | 16 ++++++++------ src/services/transacaoService.ts | 25 +++++++++------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/components/dashboard/CategoryChart.tsx b/src/components/dashboard/CategoryChart.tsx index ebbcee4..7115ed0 100644 --- a/src/components/dashboard/CategoryChart.tsx +++ b/src/components/dashboard/CategoryChart.tsx @@ -10,6 +10,9 @@ interface CategoryChartProps { } const CategoryChart: React.FC = ({ categories, isLoading = false }) => { + // Filter out any categories with zero value to prevent rendering issues + const validCategories = categories.filter(cat => cat.valor > 0); + const renderCustomizedLabel = ({ cx, cy, midAngle, innerRadius, outerRadius, percent }: any) => { if (percent === 0) return null; @@ -48,16 +51,17 @@ const CategoryChart: React.FC = ({ categories, isLoading = f
- ) : categories.length === 0 ? ( -
- Sem dados disponíveis + ) : validCategories.length === 0 ? ( +
+

Sem dados disponíveis

+

Verifique se existem transações do tipo 'despesa' cadastradas

) : (
= ({ categories, isLoading = f fill="#8884d8" dataKey="valor" > - {categories.map((entry, index) => ( + {validCategories.map((entry, index) => ( ))} formatCurrency(value)} - labelFormatter={(index) => categories[index].categoria} + labelFormatter={(index) => validCategories[index].categoria} /> diff --git a/src/services/transacaoService.ts b/src/services/transacaoService.ts index b9194de..4769b8b 100644 --- a/src/services/transacaoService.ts +++ b/src/services/transacaoService.ts @@ -48,7 +48,7 @@ export async function getTransactionSummary() { .reduce((sum, item) => sum + Math.abs(item.valor || 0), 0); const totalDespesas = data - .filter(item => item.tipo?.toLowerCase() === 'despesa') + .filter(item => (item.tipo?.toLowerCase() === 'despesa')) .reduce((sum, item) => sum + Math.abs(item.valor || 0), 0); const resultado = { @@ -63,10 +63,11 @@ export async function getTransactionSummary() { export async function getCategorySummary() { console.log("Buscando resumo de categorias..."); + + // Buscar todas as transações que são despesas, independente da capitalização const { data, error } = await supabase .from('transacoes') - .select('categoria, valor, tipo') - .eq('tipo', 'Despesa'); + .select('categoria, valor, tipo'); if (error) { console.error('Erro ao buscar resumo de categorias:', error); @@ -75,22 +76,16 @@ export async function getCategorySummary() { console.log("Dados de categorias encontrados:", data); - // Vamos buscar tanto "Despesa" quanto "despesa" para garantir - const { data: dataLowerCase, error: errorLowerCase } = await supabase - .from('transacoes') - .select('categoria, valor, tipo') - .eq('tipo', 'despesa'); + // Filtrar usando JavaScript para pegar todas as despesas (case insensitive) + const despesasData = data.filter(item => + item.tipo?.toLowerCase() === 'despesa' + ); - if (errorLowerCase) { - console.error('Erro ao buscar despesas minúsculas:', errorLowerCase); - } else if (dataLowerCase) { - data.push(...dataLowerCase); - console.log("Dados adicionais encontrados:", dataLowerCase); - } + console.log("Despesas filtradas:", despesasData.length); // Agrupar por categoria const categorias: Record = {}; - data.forEach(item => { + despesasData.forEach(item => { if (item.categoria && item.valor) { const categoriaKey = item.categoria || 'Outros'; if (!categorias[categoriaKey]) {