7.5 KiB
7.5 KiB
LOGS ESPECÍFICOS PARA DEBUG - InitialDataLoadScreen SEMPRE Após Login
🚨 LOGS IMPLEMENTADOS
Criei logs específicos com o prefixo 🚨 para identificar exatamente onde está o problema no fluxo de navegação após login. Todos os outros logs foram comentados para focar apenas no problema.
🔍 LOGS ESPECÍFICOS IMPLEMENTADOS
1. Navigation Context (src/navigation/index.tsx)
// Logs de estado da navegação
console.log('🚨 NAVIGATION DEBUG - ESTADO ATUAL:');
console.log('🚨 isLoading:', isLoading);
console.log('🚨 user:', user ? 'Logado' : 'Não logado');
console.log('🚨 isInitialDataLoaded:', isInitialDataLoaded);
console.log('🚨 forceInitialLoad:', forceInitialLoad);
console.log('🚨 DECISÃO DE NAVEGAÇÃO:');
// Logs de decisão
if (user) {
if (!isInitialDataLoaded || forceInitialLoad) {
console.log('🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen');
console.log('🚨 📋 Motivo: !isInitialDataLoaded=' + !isInitialDataLoaded + ' || forceInitialLoad=' + forceInitialLoad);
} else {
console.log('🚨 ❌ DECISÃO: MOSTRANDO Main/TabNavigator');
console.log('🚨 📋 Motivo: isInitialDataLoaded=' + isInitialDataLoaded + ' && forceInitialLoad=' + forceInitialLoad);
}
}
// Logs de renderização
console.log('🚨 NAVIGATION RENDER - ESTADO FINAL:');
console.log('🚨 TELA QUE SERÁ RENDERIZADA:', user ? ((!isInitialDataLoaded || forceInitialLoad) ? 'InitialDataLoadScreen' : 'Main/TabNavigator') : 'AuthNavigator');
2. OfflineMode Context (src/contexts/OfflineModeContext.tsx)
// Logs de montagem do contexto
console.log('🚨 OFFLINE CONTEXT - MONTANDO CONTEXTO');
console.log('🚨 Estado inicial: isInitialDataLoaded=false, forceInitialLoad=true');
console.log('🚨 OFFLINE CONTEXT - ESTADOS DEFINIDOS');
console.log('🚨 isInitialDataLoaded: false');
console.log('🚨 forceInitialLoad: true');
// Logs de verificação de status
console.log('🚨 OFFLINE CONTEXT - VERIFICANDO STATUS INICIAL');
console.log('🚨 Forçando: isInitialDataLoaded=false, forceInitialLoad=true');
console.log('🚨 OFFLINE CONTEXT - STATUS CONFIRMADO');
// Logs de carga de dados
console.log('🚨 OFFLINE CONTEXT - INICIANDO CARGA DE DADOS');
console.log('🚨 OFFLINE CONTEXT - CARGA CONCLUÍDA COM SUCESSO');
console.log('🚨 isInitialDataLoaded: true');
console.log('🚨 forceInitialLoad: false');
3. Auth Context (src/contexts/AuthContext.tsx)
// Logs de login
console.log('🚨 AUTH CONTEXT - INICIANDO LOGIN');
console.log('🚨 Usuário:', username);
console.log('🚨 AUTH CONTEXT - LIMPANDO BASE SQLite');
console.log('🚨 AUTH CONTEXT - RESETANDO MODO OFFLINE');
console.log('🚨 AUTH CONTEXT - BASE SQLite LIMPA');
console.log('🚨 AUTH CONTEXT - FAZENDO LOGIN NA API');
console.log('🚨 AUTH CONTEXT - LOGIN BEM-SUCEDIDO');
console.log('🚨 AUTH CONTEXT - VERIFICANDO ROTEIRIZAÇÃO');
console.log('🚨 AUTH CONTEXT - Entregas carregadas:', deliveries.length);
console.log('🚨 AUTH CONTEXT - Precisa de roteirização?', needsRouting);
console.log('🚨 AUTH CONTEXT - LOGIN FINALIZADO');
4. Deliveries Context (src/contexts/DeliveriesContext.tsx)
// Logs de verificação de carregamento automático
console.log("🚨 DELIVERIES CONTEXT - VERIFICANDO CARREGAMENTO AUTOMÁTICO")
console.log("🚨 isInitialDataLoaded:", isInitialDataLoaded)
console.log("🚨 hasInitializedRef.current:", hasInitializedRef.current)
// Logs de carregamento de dados
console.log("🚨 DELIVERIES CONTEXT - INICIANDO CARREGAMENTO")
console.log("🚨 Force refresh:", forceRefresh)
console.log("🚨 isInitialDataLoaded:", isInitialDataLoaded)
console.log("🚨 isOfflineMode:", isOfflineMode)
console.log("🚨 DELIVERIES CONTEXT - USANDO DADOS LOCAIS")
console.log("🚨 DELIVERIES CONTEXT - Dados locais carregados:", data.length, "entregas")
console.log("🚨 DELIVERIES CONTEXT - CARREGANDO DA API")
console.log("🚨 DELIVERIES CONTEXT - Total de entregas:", data.length)
🎯 FLUXO ESPERADO DOS LOGS
✅ Primeiro Login (Funcionando):
🚨 AUTH CONTEXT - INICIANDO LOGIN
🚨 AUTH CONTEXT - LIMPANDO BASE SQLite
🚨 AUTH CONTEXT - RESETANDO MODO OFFLINE
🚨 AUTH CONTEXT - BASE SQLite LIMPA
🚨 AUTH CONTEXT - FAZENDO LOGIN NA API
🚨 AUTH CONTEXT - LOGIN BEM-SUCEDIDO
🚨 AUTH CONTEXT - VERIFICANDO ROTEIRIZAÇÃO
🚨 AUTH CONTEXT - Entregas carregadas: X
🚨 AUTH CONTEXT - Precisa de roteirização? false
🚨 AUTH CONTEXT - LOGIN FINALIZADO
🚨 OFFLINE CONTEXT - MONTANDO CONTEXTO
🚨 Estado inicial: isInitialDataLoaded=false, forceInitialLoad=true
🚨 OFFLINE CONTEXT - ESTADOS DEFINIDOS
🚨 isInitialDataLoaded: false
🚨 forceInitialLoad: true
🚨 NAVIGATION DEBUG - ESTADO ATUAL:
🚨 user: Logado
🚨 isInitialDataLoaded: false
🚨 forceInitialLoad: true
🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen
🚨 📋 Motivo: !isInitialDataLoaded=true || forceInitialLoad=true
❌ Segundo Login (Problemático):
🚨 AUTH CONTEXT - INICIANDO LOGIN
🚨 AUTH CONTEXT - LIMPANDO BASE SQLite
🚨 AUTH CONTEXT - RESETANDO MODO OFFLINE
🚨 AUTH CONTEXT - BASE SQLite LIMPA
🚨 AUTH CONTEXT - FAZENDO LOGIN NA API
🚨 AUTH CONTEXT - LOGIN BEM-SUCEDIDO
🚨 AUTH CONTEXT - VERIFICANDO ROTEIRIZAÇÃO
🚨 AUTH CONTEXT - Entregas carregadas: X
🚨 AUTH CONTEXT - Precisa de roteirização? false
🚨 AUTH CONTEXT - LOGIN FINALIZADO
🚨 OFFLINE CONTEXT - MONTANDO CONTEXTO
🚨 Estado inicial: isInitialDataLoaded=false, forceInitialLoad=true
🚨 OFFLINE CONTEXT - ESTADOS DEFINIDOS
🚨 isInitialDataLoaded: false
🚨 forceInitialLoad: true
🚨 DELIVERIES CONTEXT - VERIFICANDO CARREGAMENTO AUTOMÁTICO
🚨 isInitialDataLoaded: false
🚨 hasInitializedRef.current: false
🚨 NAVIGATION DEBUG - ESTADO ATUAL:
🚨 user: Logado
🚨 isInitialDataLoaded: false
🚨 forceInitialLoad: true
🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen
🚨 📋 Motivo: !isInitialDataLoaded=true || forceInitialLoad=true
// MAS DEPOIS ALGUM LUGAR MUDA PARA:
🚨 NAVIGATION DEBUG - ESTADO ATUAL:
🚨 user: Logado
🚨 isInitialDataLoaded: true ← PROBLEMA AQUI!
🚨 forceInitialLoad: false ← PROBLEMA AQUI!
🚨 ❌ DECISÃO: MOSTRANDO Main/TabNavigator
🚨 📋 Motivo: isInitialDataLoaded=true && forceInitialLoad=false
🔍 ONDE PROCURAR O PROBLEMA
1. Verificar se DeliveriesContext está mudando os estados:
Procure por logs que mostrem:
🚨 DELIVERIES CONTEXT - CARREGANDO DADOS LOCAIS
2. Verificar se OfflineModeContext está sendo resetado:
Procure por logs que mostrem:
🚨 OFFLINE CONTEXT - MONTANDO CONTEXTO
🚨 OFFLINE CONTEXT - ESTADOS DEFINIDOS
3. Verificar se a navegação está recebendo os estados corretos:
Procure por logs que mostrem:
🚨 NAVIGATION DEBUG - ESTADO ATUAL:
🚨 isInitialDataLoaded: false
🚨 forceInitialLoad: true
🧪 COMO TESTAR
- Fazer Login com qualquer usuário
- Verificar Logs - deve mostrar
🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen - Fazer Logout e Login Novamente - processo deve repetir
- Verificar Logs - deve mostrar
🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreennovamente - Se mostrar
🚨 ❌ DECISÃO: MOSTRANDO Main/TabNavigator- identificar onde os estados estão sendo alterados
🎯 OBJETIVO
Identificar exatamente onde e quando os estados isInitialDataLoaded e forceInitialLoad estão sendo alterados incorretamente no segundo login, causando o problema de navegação.
Agora os logs estão focados apenas no problema específico! 🚀