From bfdd93585358a89136bd8edfe0a84adb3df1ce78 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 18:50:28 +0000 Subject: [PATCH] Fix: Resolve "Nova Despesa" button issue The AI will address the issue where the "Nova Despesa" button causes problems, specifically for the user "leopootz10@gmail.com". The changes will focus on the `TransactionForm.tsx`, `useTransactionForm.ts`, and `TransactionDialogs.tsx` files. --- .../transaction/GroupSelectField.tsx | 78 +++++++++++-------- src/hooks/useTransactionForm.ts | 20 +++-- 2 files changed, 60 insertions(+), 38 deletions(-) diff --git a/src/components/transaction/GroupSelectField.tsx b/src/components/transaction/GroupSelectField.tsx index 2cd0509..234e736 100644 --- a/src/components/transaction/GroupSelectField.tsx +++ b/src/components/transaction/GroupSelectField.tsx @@ -1,14 +1,8 @@ -import { FormControl, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue -} from "@/components/ui/select"; -import { UseFormReturn } from "react-hook-form"; -import { TransactionFormValues } from "@/hooks/useTransactionForm"; +import { FormField, FormItem, FormLabel, FormControl, FormMessage } from '@/components/ui/form'; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; +import { UseFormReturn } from 'react-hook-form'; +import { TransactionFormValues } from '@/hooks/useTransactionForm'; interface GroupSelectFieldProps { form: UseFormReturn; @@ -16,30 +10,48 @@ interface GroupSelectFieldProps { } export function GroupSelectField({ form, grupos }: GroupSelectFieldProps) { - if (grupos.length === 0) return null; + console.log('🏷️ GroupSelectField - grupos recebidos:', grupos); + // Filtrar grupos válidos (com remote_jid não vazio) + const gruposValidos = grupos.filter(grupo => + grupo.remote_jid && + grupo.remote_jid.trim() !== '' && + grupo.remote_jid !== null + ); + + console.log('✅ Grupos válidos para o select:', gruposValidos); + return ( - - Grupo WhatsApp (opcional) - - - + ( + + Grupo (Opcional) + + + + )} + /> ); } diff --git a/src/hooks/useTransactionForm.ts b/src/hooks/useTransactionForm.ts index 839d909..a8751e8 100644 --- a/src/hooks/useTransactionForm.ts +++ b/src/hooks/useTransactionForm.ts @@ -1,4 +1,3 @@ - import { useState, useCallback } from 'react'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; @@ -39,6 +38,7 @@ export const useTransactionForm = ( if (!userEmail) { console.error('❌ Email do usuário não encontrado no localStorage'); + setGrupos([]); return; } @@ -59,18 +59,28 @@ export const useTransactionForm = ( if (error) { console.error('❌ Erro ao buscar grupos:', error); - // Não bloquear o formulário se não conseguir buscar grupos setGrupos([]); } else if (data) { - console.log(`✅ ${data.length} grupos encontrados`); - setGrupos(data); + // Filtrar grupos que têm remote_jid válido (não vazio e não null) + const gruposValidos = data.filter(grupo => + grupo.remote_jid && + grupo.remote_jid.trim() !== '' && + grupo.remote_jid !== null + ); + + console.log(`✅ ${data.length} grupos encontrados, ${gruposValidos.length} grupos válidos`); + + if (gruposValidos.length !== data.length) { + console.warn('⚠️ Alguns grupos foram filtrados por terem remote_jid inválido'); + } + + setGrupos(gruposValidos); } else { console.log('📝 Nenhum grupo encontrado, definindo array vazio'); setGrupos([]); } } catch (error) { console.error('💥 Erro inesperado ao buscar grupos:', error); - // Garantir que sempre temos um array vazio em caso de erro setGrupos([]); } }, []);