Aller au contenu principal

Gestion d'état

Nous utilisons une approche hybride pour la gestion d'état.

1. État serveur (React Query)

90 % des données de l'app proviennent de l'API (chevaux, alertes, caméras). Nous utilisons TanStack Query pour :

  • Le cache (validité instantanée).
  • Le rafraîchissement en arrière-plan.
  • Les mises à jour optimistes (UI mise à jour avant confirmation serveur).
const { data: horses } = useQuery({
queryKey: ["horses", stableId],
queryFn: () => api.getHorses(stableId),
});

2. État applicatif (React Context)

Pour l'état global, nous utilisons des Context Providers.

  • AuthProvider : Stocke le JWT dans SecureStore (prêt biométrie) et expose signIn/signOut.
  • SocketProvider : Maintient le singleton de connexion Socket.io.

3. État de navigation

Géré implicitement par Expo Router à partir du système de fichiers (app/(tabs)/index.tsx).