entregas_app/docs/LOGS_ESPECIFICOS_DEBUG_INIT...

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

  1. Fazer Login com qualquer usuário
  2. Verificar Logs - deve mostrar 🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen
  3. Fazer Logout e Login Novamente - processo deve repetir
  4. Verificar Logs - deve mostrar 🚨 ✅ DECISÃO: MOSTRANDO InitialDataLoadScreen novamente
  5. 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! 🚀