Files
siop2/apps/mobile
pr-daaif 63656565f7 fix(mobile): Assistant — question dictée pleinement visible avant envoi
Retour de recette (02/08) : la barre de saisie sur une ligne masquait le
texte transcrit dès qu'il dépassait quelques mots, empêchant la relecture
avant envoi (D5 de la maquette Assistant). Remplacée par une zone
multiligne pleine largeur (jusqu'à 160px, défilement interne au-delà) —
même patron que la description de clôture (cloture.tsx) — avec "Envoyer"
comme geste séparé et délibéré en dessous, pas accolé au champ.

Typecheck propre, 17 tests Jest, lint 5/5 paquets.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 13:21:38 +01:00
..

@siop/mobile — l'app du technicien (R4)

Expo (SDK 57), offline-first, périmètre fermé : Ma journée, scan, préventif, synchro — la gestion reste web, le demandeur reste sur le portail QR public. Maquettes validées : docs/02-design/maquettes/maquette-r4.html (+ décisions D1-D5 au journal du 17/07/2026).

Lancer

# API locale d'abord (apps/api : pnpm dev), puis :
pnpm --filter @siop/mobile start          # QR Expo Go (téléphone sur le MÊME réseau)
EXPO_PUBLIC_API_URL=http://192.168.x.y:3000 pnpm --filter @siop/mobile start
  • EXPO_PUBLIC_API_URL : URL de l'API vue depuis le téléphone (IP LAN, pas localhost). Défaut : http://localhost:3000 (suffisant pour expo start --web).
  • Vérification navigateur : expo start --web + CORS_ORIGINS=http://localhost:8081 côté API (les apps natives n'envoient pas d'Origin — CORS ne concerne que le web).

Ce que porte R4.1 (socle)

  • Connexion e-mail/mot de passe + sélecteur démo (ADR-002 : n'existe que si l'API l'expose).
  • Coquille tabbar (onglets à venir marqués R4.2/R4.3) + Ma journée : OT triés priorité puis échéance (src/lib/journee.ts, testé), urgence en tête, pastille de synchro.
  • Lecture hors-ligne (D1) : cache TanStack persisté dans AsyncStorage (7 jours), NetInfo pilote onlineManager + bandeau. L'écriture en file arrive en R4.3.
  • Client typé généré depuis docs/openapi.json (pnpm generate:client) — règle d'or ADR-001.
  • Jeton dans SecureStore (trousseau) ; AsyncStorage en repli web de dev.

Tests

pnpm --filter @siop/mobile test (jest-expo — logique pure : tri, tokens) ; typecheck et le lint racine s'appliquent (job CI mobile).