From 7ea5009fbd9c3b2dc9af28ca1ed91feaab9044ce Mon Sep 17 00:00:00 2001
From: "gpt-engineer-app[bot]"
<159125892+gpt-engineer-app[bot]@users.noreply.github.com>
Date: Sat, 24 May 2025 14:31:23 +0000
Subject: [PATCH] Fix: Enable "Cadastrar Grupo" button logic
The "Cadastrar Grupo" button should be enabled when the user's WhatsApp instance name is filled in the "usuarios" table and the status is "connected". This commit implements this logic.
---
.../whatsappGroups/CreateGroupForm.tsx | 46 ++++++++++++-------
1 file changed, 29 insertions(+), 17 deletions(-)
diff --git a/src/components/whatsappGroups/CreateGroupForm.tsx b/src/components/whatsappGroups/CreateGroupForm.tsx
index 64984c9..72c4b7f 100644
--- a/src/components/whatsappGroups/CreateGroupForm.tsx
+++ b/src/components/whatsappGroups/CreateGroupForm.tsx
@@ -28,7 +28,7 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
whatsapp: string | null;
} | null>(null);
- // Verificar se o usuário tem instância WhatsApp
+ // Verificar se o usuário tem instância WhatsApp CONECTADA
useEffect(() => {
const checkUserInstance = async () => {
if (!userEmail) {
@@ -43,18 +43,25 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
const instanceData = await getUserWhatsAppInstance(userEmail);
console.log('Dados da instância do usuário:', instanceData);
- if (instanceData &&
- instanceData.instancia_zap &&
- instanceData.instancia_zap.trim() !== '' &&
- instanceData.whatsapp &&
- instanceData.whatsapp.trim() !== '') {
+ // LÓGICA CORRETA: Verificar se tem instância E se está conectada
+ const hasValidInstance = !!(
+ instanceData &&
+ instanceData.instancia_zap &&
+ instanceData.instancia_zap.trim() !== '' &&
+ instanceData.status_instancia === 'conectado' // DEVE ESTAR CONECTADO
+ );
+
+ if (hasValidInstance) {
setHasWhatsAppInstance(true);
setUserInstance(instanceData);
- console.log('Usuário tem instância WhatsApp válida');
+ console.log('Usuário tem instância WhatsApp conectada - liberando cadastro de grupo');
} else {
setHasWhatsAppInstance(false);
- setUserInstance(null);
- console.log('Usuário não tem instância WhatsApp válida ou dados estão incompletos');
+ setUserInstance(instanceData);
+ console.log('Usuário não tem instância conectada:', {
+ instancia_zap: instanceData?.instancia_zap,
+ status_instancia: instanceData?.status_instancia
+ });
}
} catch (error) {
console.error('Erro ao verificar instância do usuário:', error);
@@ -88,10 +95,10 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
return;
}
- if (!userInstance || !userInstance.instancia_zap || !userInstance.whatsapp) {
+ if (!userInstance || !userInstance.instancia_zap || userInstance.status_instancia !== 'conectado') {
toast({
title: 'Erro',
- description: 'Dados da instância WhatsApp não encontrados',
+ description: 'Instância WhatsApp não está conectada',
variant: 'destructive',
});
return;
@@ -113,7 +120,7 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
const groupResponse = await createWhatsAppGroup(
userInstance.instancia_zap,
userEmail,
- userInstance.whatsapp
+ userInstance.whatsapp || ''
);
console.log('Resposta da criação do grupo:', groupResponse);
@@ -191,18 +198,23 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
Debug Info:
+Status da Instância:
Email: {userEmail || 'Não definido'}
Instância: {userInstance?.instancia_zap || 'Não encontrada'}
-WhatsApp: {userInstance?.whatsapp || 'Não encontrado'}
Status: {userInstance?.status_instancia || 'Não definido'}
+WhatsApp: {userInstance?.whatsapp || 'Não encontrado'}
+ {userInstance?.instancia_zap && userInstance?.status_instancia !== 'conectado' && ( ++ ⚠️ Instância encontrada, mas não está conectada. Status atual: {userInstance.status_instancia} +
+ )}