budget-view-finance/src/hooks/useWhatsAppInstances.ts
gpt-engineer-app[bot] ec390787c6 Implement WhatsApp connection flow
- Updated database on instance creation.
- Added n8n workflow activation.
- Filtered instance display by user email.
2025-06-19 22:28:40 +00:00

70 lines
2.1 KiB
TypeScript

import { useInstanceState } from './whatsApp/useInstanceState';
import { useInstanceOperations } from './whatsApp/useInstanceOperations';
import { useInstanceStatusCheck } from './whatsApp/useInstanceStatusCheck';
import { useInstanceRefresh } from './whatsApp/useInstanceRefresh';
import { WhatsAppInstance } from '@/types/whatsAppTypes';
import { useMemo } from 'react';
export const useWhatsAppInstances = () => {
const {
instances,
setInstances,
currentUserId,
isRefreshing,
setIsRefreshing,
isCheckingStatus,
setIsCheckingStatus
} = useInstanceState();
const { addInstance, removeInstance, updateInstance } = useInstanceOperations(
instances,
setInstances
);
const { checkAllInstancesStatus } = useInstanceStatusCheck(
instances,
setInstances,
isCheckingStatus,
setIsCheckingStatus
);
const { refreshInstances } = useInstanceRefresh(
instances,
setInstances,
currentUserId,
setIsRefreshing
);
// Filtrar instâncias para mostrar apenas as do usuário logado
const filteredInstances = useMemo(() => {
const userEmail = localStorage.getItem('userEmail');
if (!userEmail) {
console.log('❌ Email do usuário não encontrado, retornando lista vazia');
return [];
}
const filtered = instances.filter((instance: WhatsAppInstance) => {
// Comparar o instanceName com o email do usuário
// Como o instanceName é o email do usuário, podemos fazer a comparação direta
const isUserInstance = instance.instanceName === userEmail;
console.log(`🔍 Verificando instância ${instance.instanceName} para usuário ${userEmail}: ${isUserInstance ? 'INCLUIR' : 'EXCLUIR'}`);
return isUserInstance;
});
console.log(`📋 Total de instâncias: ${instances.length}, Filtradas para usuário ${userEmail}: ${filtered.length}`);
return filtered;
}, [instances]);
return {
instances: filteredInstances, // Retornar instâncias filtradas
isRefreshing,
currentUserId,
addInstance,
removeInstance,
updateInstance,
refreshInstances,
checkAllInstancesStatus
};
};