# 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`)** ```typescript // 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`)** ```typescript // 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`)** ```typescript // 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`)** ```typescript // 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!** 🚀