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.
This commit is contained in:
parent
c25272b68f
commit
bfdd935853
@ -1,14 +1,8 @@
|
|||||||
|
|
||||||
import { FormControl, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
|
import { FormField, FormItem, FormLabel, FormControl, FormMessage } from '@/components/ui/form';
|
||||||
import {
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||||
Select,
|
import { UseFormReturn } from 'react-hook-form';
|
||||||
SelectContent,
|
import { TransactionFormValues } from '@/hooks/useTransactionForm';
|
||||||
SelectItem,
|
|
||||||
SelectTrigger,
|
|
||||||
SelectValue
|
|
||||||
} from "@/components/ui/select";
|
|
||||||
import { UseFormReturn } from "react-hook-form";
|
|
||||||
import { TransactionFormValues } from "@/hooks/useTransactionForm";
|
|
||||||
|
|
||||||
interface GroupSelectFieldProps {
|
interface GroupSelectFieldProps {
|
||||||
form: UseFormReturn<TransactionFormValues>;
|
form: UseFormReturn<TransactionFormValues>;
|
||||||
@ -16,14 +10,27 @@ interface GroupSelectFieldProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function GroupSelectField({ form, grupos }: 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 (
|
return (
|
||||||
|
<FormField
|
||||||
|
control={form.control}
|
||||||
|
name="grupo_id"
|
||||||
|
render={({ field }) => (
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>Grupo WhatsApp (opcional)</FormLabel>
|
<FormLabel>Grupo (Opcional)</FormLabel>
|
||||||
<Select
|
<Select
|
||||||
onValueChange={(value) => form.setValue("grupo_id", value === "none" ? null : value)}
|
onValueChange={(value) => field.onChange(value || null)}
|
||||||
value={form.getValues("grupo_id") || undefined}
|
value={field.value || ""}
|
||||||
>
|
>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
@ -31,15 +38,20 @@ export function GroupSelectField({ form, grupos }: GroupSelectFieldProps) {
|
|||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="none">Nenhum grupo</SelectItem>
|
<SelectItem value="">Nenhum grupo</SelectItem>
|
||||||
{grupos.map((grupo) => (
|
{gruposValidos.map((grupo) => (
|
||||||
<SelectItem key={grupo.remote_jid} value={grupo.remote_jid}>
|
<SelectItem
|
||||||
{grupo.nome_grupo || grupo.remote_jid}
|
key={grupo.remote_jid}
|
||||||
|
value={grupo.remote_jid}
|
||||||
|
>
|
||||||
|
{grupo.nome_grupo || 'Grupo sem nome'}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
))}
|
))}
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import { useState, useCallback } from 'react';
|
import { useState, useCallback } from 'react';
|
||||||
import { useForm } from 'react-hook-form';
|
import { useForm } from 'react-hook-form';
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
@ -39,6 +38,7 @@ export const useTransactionForm = (
|
|||||||
|
|
||||||
if (!userEmail) {
|
if (!userEmail) {
|
||||||
console.error('❌ Email do usuário não encontrado no localStorage');
|
console.error('❌ Email do usuário não encontrado no localStorage');
|
||||||
|
setGrupos([]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,18 +59,28 @@ export const useTransactionForm = (
|
|||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('❌ Erro ao buscar grupos:', error);
|
console.error('❌ Erro ao buscar grupos:', error);
|
||||||
// Não bloquear o formulário se não conseguir buscar grupos
|
|
||||||
setGrupos([]);
|
setGrupos([]);
|
||||||
} else if (data) {
|
} else if (data) {
|
||||||
console.log(`✅ ${data.length} grupos encontrados`);
|
// Filtrar grupos que têm remote_jid válido (não vazio e não null)
|
||||||
setGrupos(data);
|
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 {
|
} else {
|
||||||
console.log('📝 Nenhum grupo encontrado, definindo array vazio');
|
console.log('📝 Nenhum grupo encontrado, definindo array vazio');
|
||||||
setGrupos([]);
|
setGrupos([]);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('💥 Erro inesperado ao buscar grupos:', error);
|
console.error('💥 Erro inesperado ao buscar grupos:', error);
|
||||||
// Garantir que sempre temos um array vazio em caso de erro
|
|
||||||
setGrupos([]);
|
setGrupos([]);
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user