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
}
}
}