entregas_app/docs/LOGS_ESPECIFICOS_DEBUG_INIT...

203 lines
7.5 KiB
Markdown
Raw Normal View History

# 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!** 🚀