Fix: Enable "Cadastrar Grupo" button

The "Cadastrar Grupo" button in the Grupos menu was not enabled after connecting a WhatsApp instance. This commit reviews the logic in `CreateGroupForm.tsx` to ensure the button is correctly enabled when a WhatsApp instance is connected and the user is logged in.
This commit is contained in:
gpt-engineer-app[bot] 2025-05-24 14:09:31 +00:00
parent 417c24089b
commit ead6400404
2 changed files with 36 additions and 3 deletions

View File

@ -31,19 +31,30 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
// Verificar se o usuário tem instância WhatsApp
useEffect(() => {
const checkUserInstance = async () => {
if (!userEmail) return;
if (!userEmail) {
console.log('Email do usuário não fornecido');
setCheckingInstance(false);
return;
}
setCheckingInstance(true);
try {
console.log('Verificando instância para o usuário:', userEmail);
const instanceData = await getUserWhatsAppInstance(userEmail);
console.log('Dados da instância do usuário:', instanceData);
if (instanceData && instanceData.instancia_zap && instanceData.instancia_zap.trim() !== '') {
if (instanceData &&
instanceData.instancia_zap &&
instanceData.instancia_zap.trim() !== '' &&
instanceData.whatsapp &&
instanceData.whatsapp.trim() !== '') {
setHasWhatsAppInstance(true);
setUserInstance(instanceData);
console.log('Usuário tem instância WhatsApp válida');
} else {
setHasWhatsAppInstance(false);
setUserInstance(null);
console.log('Usuário não tem instância WhatsApp válida ou dados estão incompletos');
}
} catch (error) {
console.error('Erro ao verificar instância do usuário:', error);
@ -184,6 +195,15 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
Acesse o menu de conexão e realize este processo primeiro.
</AlertDescription>
</Alert>
{/* Debug info para ajudar a identificar o problema */}
<div className="mt-4 p-4 bg-gray-100 rounded text-sm">
<p><strong>Debug Info:</strong></p>
<p>Email: {userEmail || 'Não definido'}</p>
<p>Instância: {userInstance?.instancia_zap || 'Não encontrada'}</p>
<p>WhatsApp: {userInstance?.whatsapp || 'Não encontrado'}</p>
<p>Status: {userInstance?.status_instancia || 'Não definido'}</p>
</div>
</CardContent>
</Card>
);
@ -198,6 +218,16 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
{/* Mostrar informações da instância conectada */}
<div className="bg-green-50 border border-green-200 rounded p-3 text-sm">
<p className="text-green-800">
<strong>✓ Instância conectada:</strong> {userInstance?.instancia_zap}
</p>
<p className="text-green-700">
Status: {userInstance?.status_instancia}
</p>
</div>
<div className="space-y-2">
<Label htmlFor="nomeGrupo">Nome do grupo</Label>
<Input

View File

@ -39,17 +39,20 @@ export async function getUserWhatsAppInstance(userEmail: string): Promise<{
whatsapp: string | null;
} | null> {
try {
console.log('Buscando instância para o email:', userEmail);
const { data, error } = await supabase
.from('usuarios')
.select('instancia_zap, status_instancia, whatsapp')
.eq('email', userEmail.trim().toLowerCase())
.single();
.maybeSingle(); // Use maybeSingle em vez de single para evitar erro quando não encontrar
if (error) {
console.error('Erro ao buscar instância WhatsApp:', error);
return null;
}
console.log('Dados da instância encontrados:', data);
return data;
} catch (error) {
console.error('Erro ao buscar instância WhatsApp:', error);