Fix WhatsApp group creation logic
The logic for enabling WhatsApp group creation was not correctly recognizing when a WhatsApp instance was created, allowing users to attempt to create multiple instances. This commit addresses the issue.
This commit is contained in:
parent
4950dae761
commit
be3ceeaeb2
@ -26,12 +26,11 @@ const CreateInstanceForm = ({
|
||||
const [hasExistingInstance, setHasExistingInstance] = useState(false);
|
||||
const [checkingExistingInstance, setCheckingExistingInstance] = useState(true);
|
||||
const currentUserId = localStorage.getItem('userId') || '';
|
||||
const userEmail = (localStorage.getItem('userEmail') || '').toLowerCase(); // Padronização obrigatória
|
||||
const userEmail = (localStorage.getItem('userEmail') || '').toLowerCase();
|
||||
|
||||
// Nome da instância será sempre o email do usuário (já padronizado)
|
||||
const instanceName = userEmail;
|
||||
|
||||
// Verificar se o usuário já tem uma instância
|
||||
// Verificar se o usuário já tem uma instância - verificação mais rigorosa
|
||||
useEffect(() => {
|
||||
const checkExistingInstance = async () => {
|
||||
if (!userEmail) {
|
||||
@ -40,18 +39,23 @@ const CreateInstanceForm = ({
|
||||
}
|
||||
|
||||
try {
|
||||
console.log('Verificando se usuário já tem instância:', userEmail);
|
||||
console.log('🔍 Verificando se usuário já tem instância:', userEmail);
|
||||
const existingInstance = await getUserWhatsAppInstance(userEmail);
|
||||
|
||||
if (existingInstance && existingInstance.instancia_zap) {
|
||||
console.log('Usuário já possui instância:', existingInstance.instancia_zap);
|
||||
setHasExistingInstance(true);
|
||||
} else {
|
||||
console.log('Usuário não possui instância');
|
||||
setHasExistingInstance(false);
|
||||
}
|
||||
console.log('📋 Dados da instância encontrados:', existingInstance);
|
||||
|
||||
// Verificação mais rigorosa - deve ter instancia_zap E não pode estar vazio
|
||||
const hasValidInstance = !!(
|
||||
existingInstance &&
|
||||
existingInstance.instancia_zap &&
|
||||
existingInstance.instancia_zap.trim() !== ''
|
||||
);
|
||||
|
||||
console.log('✅ Usuário possui instância válida:', hasValidInstance);
|
||||
setHasExistingInstance(hasValidInstance);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Erro ao verificar instância existente:', error);
|
||||
console.error('❌ Erro ao verificar instância existente:', error);
|
||||
setHasExistingInstance(false);
|
||||
} finally {
|
||||
setCheckingExistingInstance(false);
|
||||
@ -140,7 +144,6 @@ const CreateInstanceForm = ({
|
||||
console.log('✅ Workflow ativado com sucesso no n8n');
|
||||
} catch (workflowError) {
|
||||
console.error('⚠️ Erro ao ativar workflow, mas instância foi criada:', workflowError);
|
||||
// Não bloquear o fluxo se o workflow falhar, apenas loggar
|
||||
toast({
|
||||
title: "Aviso",
|
||||
description: "Instância criada, mas houve um problema ao ativar a automação. Entre em contato com o suporte.",
|
||||
@ -239,7 +242,7 @@ const CreateInstanceForm = ({
|
||||
<strong>✓ Instância ativa:</strong> {instanceName}
|
||||
</p>
|
||||
<p className="text-green-700 text-sm mt-1">
|
||||
Para gerenciar sua instância, utilize os botões na lista de instâncias acima.
|
||||
Para gerenciar sua instância, utilize os botões na lista de instâncias abaixo.
|
||||
</p>
|
||||
</div>
|
||||
</CardContent>
|
||||
|
||||
@ -28,23 +28,24 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
||||
whatsapp: string | null;
|
||||
} | null>(null);
|
||||
|
||||
// Verificar se o usuário tem instância WhatsApp CONECTADA
|
||||
// Verificar se o usuário tem instância WhatsApp CONECTADA - verificação mais rigorosa
|
||||
useEffect(() => {
|
||||
const checkUserInstance = async () => {
|
||||
if (!userEmail) {
|
||||
console.log('Email do usuário não fornecido');
|
||||
console.log('❌ Email do usuário não fornecido');
|
||||
setCheckingInstance(false);
|
||||
return;
|
||||
}
|
||||
|
||||
setCheckingInstance(true);
|
||||
try {
|
||||
console.log('Verificando instância para:', userEmail);
|
||||
console.log('🔍 Verificando instância para criação de grupo:', userEmail);
|
||||
|
||||
const instanceData = await getUserWhatsAppInstance(userEmail);
|
||||
console.log('Dados da instância:', instanceData);
|
||||
console.log('📋 Dados da instância encontrados:', instanceData);
|
||||
|
||||
if (instanceData) {
|
||||
// Verificação mais rigorosa: deve ter instancia_zap E status conectado
|
||||
const hasValidInstance = !!(
|
||||
instanceData &&
|
||||
instanceData.instancia_zap &&
|
||||
@ -52,7 +53,11 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
||||
instanceData.status_instancia === 'conectado'
|
||||
);
|
||||
|
||||
console.log('Instância válida:', hasValidInstance);
|
||||
console.log('✅ Instância válida para criar grupos:', hasValidInstance, {
|
||||
instancia_zap: instanceData.instancia_zap,
|
||||
status_instancia: instanceData.status_instancia,
|
||||
hasValidInstance
|
||||
});
|
||||
|
||||
if (hasValidInstance) {
|
||||
setHasWhatsAppInstance(true);
|
||||
@ -62,11 +67,12 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
||||
setUserInstance(instanceData);
|
||||
}
|
||||
} else {
|
||||
console.log('❌ Nenhuma instância encontrada');
|
||||
setHasWhatsAppInstance(false);
|
||||
setUserInstance(null);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erro ao verificar instância do usuário:', error);
|
||||
console.error('❌ Erro ao verificar instância do usuário:', error);
|
||||
setHasWhatsAppInstance(false);
|
||||
setUserInstance(null);
|
||||
} finally {
|
||||
@ -196,8 +202,21 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
|
||||
<Alert>
|
||||
<AlertCircle className="h-4 w-4" />
|
||||
<AlertDescription>
|
||||
Para criar um grupo é necessário ter sua instância do WhatsApp conectada.
|
||||
Acesse o menu "Conectar WhatsApp" e realize a conexão primeiro.
|
||||
{userInstance && userInstance.instancia_zap && userInstance.status_instancia !== 'conectado' ? (
|
||||
<>
|
||||
Sua instância WhatsApp está <strong>desconectada</strong>.
|
||||
Acesse o menu "Conectar WhatsApp" e escaneie o QR Code para conectar sua instância.
|
||||
<br />
|
||||
<span className="text-sm text-gray-600 mt-2 block">
|
||||
Status atual: {userInstance.status_instancia}
|
||||
</span>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
Para criar um grupo é necessário ter sua instância do WhatsApp conectada.
|
||||
Acesse o menu "Conectar WhatsApp" e realize a conexão primeiro.
|
||||
</>
|
||||
)}
|
||||
</AlertDescription>
|
||||
</Alert>
|
||||
</CardContent>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user