From 5c68a49824e7d1258c5d8b6be29480409add5ae4 Mon Sep 17 00:00:00 2001 From: Arthur Lempereur Date: Thu, 23 Oct 2025 17:20:24 +0200 Subject: [PATCH] Debug: Add loading and error screens to diagnose startup issues --- App.test.tsx | 32 ++++++++++++ App.tsx | 84 +++++++++++++++++++++++++++++--- QUICK_FIX.md | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++ app.json | 5 ++ 4 files changed, 248 insertions(+), 8 deletions(-) create mode 100644 App.test.tsx create mode 100644 QUICK_FIX.md diff --git a/App.test.tsx b/App.test.tsx new file mode 100644 index 0000000..fc810b6 --- /dev/null +++ b/App.test.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { View, Text, StyleSheet } from 'react-native'; + +export default function App() { + return ( + + ✅ WalletTracker fonctionne ! + Si vous voyez ce message, l'app charge correctement. + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F8F9FA' + }, + text: { + fontSize: 24, + fontWeight: 'bold', + color: '#333', + marginBottom: 16 + }, + subtext: { + fontSize: 16, + color: '#666', + textAlign: 'center', + paddingHorizontal: 32 + } +}); diff --git a/App.tsx b/App.tsx index b15d967..8210b88 100644 --- a/App.tsx +++ b/App.tsx @@ -1,20 +1,88 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import { StatusBar } from 'expo-status-bar'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; -import { StyleSheet } from 'react-native'; +import { StyleSheet, View, Text, ActivityIndicator } from 'react-native'; import { AppNavigator } from './src/navigation/AppNavigator'; export default function App() { - return ( - - - - - ); + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + // Simuler un chargement pour détecter les erreurs + const timer = setTimeout(() => { + setLoading(false); + }, 1000); + + return () => clearTimeout(timer); + }, []); + + if (loading) { + return ( + + + Chargement de WalletTracker... + + ); + } + + if (error) { + return ( + + ❌ Erreur + {error} + + ); + } + + try { + return ( + + + + + ); + } catch (err: any) { + return ( + + ❌ Erreur de chargement + {err.message || 'Erreur inconnue'} + + ); + } } const styles = StyleSheet.create({ container: { flex: 1 + }, + loadingContainer: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F8F9FA' + }, + loadingText: { + marginTop: 16, + fontSize: 16, + color: '#666' + }, + errorContainer: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#FFF', + padding: 24 + }, + errorTitle: { + fontSize: 24, + fontWeight: 'bold', + color: '#FF6B6B', + marginBottom: 16 + }, + errorText: { + fontSize: 14, + color: '#666', + textAlign: 'center' } }); diff --git a/QUICK_FIX.md b/QUICK_FIX.md new file mode 100644 index 0000000..3aa988d --- /dev/null +++ b/QUICK_FIX.md @@ -0,0 +1,135 @@ +# ⚡ Corrections rapides - WalletTracker + +## 🔴 L'app reste bloquée sur "New update available, downloading..." + +### Solution rapide (30 secondes) + +1. **Sur votre téléphone** : + - Fermez complètement Expo Go (swipe up) + - Rouvrez Expo Go + - Rescannez le QR code + +2. **Si ça ne marche toujours pas** : + - Secouez le téléphone + - Appuyez sur "Go Home" + - Rescannez le QR code + +3. **Dernière option** : + - Dans Expo Go : Profil (en bas à droite) → Settings → Clear cache + - Rescannez le QR code + +### Solution définitive (appliquée) + +J'ai désactivé les mises à jour automatiques dans `app.json`. + +**Redémarrez le serveur** : +```bash +# Arrêtez le serveur (Ctrl+C) +npm start -- --clear +``` + +Puis **rescannez le QR code**. + +## 🔴 Écran blanc / App ne charge pas + +### 1. Vérifier le serveur Metro + +Dans le terminal, vous devez voir : +``` +› Metro waiting on exp://192.168.1.132:8081 +``` + +Si ce n'est pas le cas : +```bash +npm start -- --clear +``` + +### 2. Vérifier la connexion réseau + +- Téléphone et ordinateur sur le **même Wi-Fi** +- Pas de VPN actif +- Pare-feu autorise Expo (port 8081) + +### 3. Mode tunnel (si problème réseau) + +```bash +npm start -- --tunnel +``` +⚠️ Plus lent mais fonctionne même avec des réseaux différents + +## 🔴 Erreur "Unable to resolve module" + +```bash +# Nettoyer complètement +rm -rf node_modules +npm install +npm start -- --clear +``` + +## 🔴 Erreur Firebase + +Vérifiez `src/config/firebase.ts` : +- Les identifiants sont corrects +- Authentication est activée dans Firebase Console +- Firestore Database est créée + +## 🔴 L'app crash au démarrage + +1. **Regardez les logs** dans le terminal +2. **Vérifiez les erreurs** : + - Erreur Firebase → Configurez Firebase + - Erreur de module → Nettoyez le cache + - Erreur de syntaxe → Vérifiez le dernier commit + +## 🔴 Bouton qui charge à l'infini + +C'est corrigé ! Si ça persiste : +```bash +# Rechargez l'app +# Secouez le téléphone > Reload +``` + +## 🔴 Les modifications ne s'appliquent pas + +1. **Rechargement à chaud désactivé** : + - Secouez le téléphone + - Appuyez sur "Enable Fast Refresh" + +2. **Forcer le rechargement** : + - Secouez le téléphone + - Appuyez sur "Reload" + +3. **Nettoyer le cache** : + ```bash + npm start -- --clear + ``` + +## 📱 Commandes utiles + +```bash +# Démarrage normal +npm start + +# Avec cache nettoyé +npm start -- --clear + +# Mode tunnel (problèmes réseau) +npm start -- --tunnel + +# Réinstaller les dépendances +rm -rf node_modules && npm install +``` + +## 🆘 Toujours bloqué ? + +1. **Vérifiez les logs** dans le terminal +2. **Consultez** `TROUBLESHOOTING.md` pour plus de détails +3. **Redémarrez tout** : + - Fermez Expo Go + - Arrêtez le serveur (Ctrl+C) + - Relancez : `npm start -- --clear` + - Rescannez le QR code + +--- + +**Dans 99% des cas, un simple rechargement suffit ! 🚀** diff --git a/app.json b/app.json index 490e9d1..2b980cf 100644 --- a/app.json +++ b/app.json @@ -40,6 +40,11 @@ "eas": { "projectId": "your-project-id" } + }, + "updates": { + "enabled": false, + "checkAutomatically": "ON_ERROR_RECOVERY", + "fallbackToCacheTimeout": 0 } } }