typedRoutes=true dans app.json interdit les string literals
Tous les router.push/replace convertis en { pathname } object
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- note/[id].tsx: contenu TipTap = HTML -> afficher directement dans WebView
(plus d'inline MD parser - c'était la cause du contenu vide)
+ javaScriptEnabled=true explicite (requis Android)
+ gestion erreur avec message visible
+ hitSlop sur bouton retour pour meilleur tap area
- home.tsx: quick actions uniques (Note du jour / Nouvelle note / Révision)
- retiré Carnets et Recherche qui doublaient le tab bar du bas
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- login.tsx: bouton 'Continuer avec Google' (expo-web-browser + deep link memento://auth)
- login.tsx: bouton oeil pour afficher/masquer mot de passe
- login.tsx: message d'erreur contextuel si compte Google (pas de mot de passe en DB)
- store.ts: loginWithToken() pour recevoir le token après OAuth Google
- google-start/route.ts: lance le flux NextAuth Google avec redirect callback
- google-callback/route.ts: reçoit la session, génère token mobile, redirige vers memento://auth
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- lib/theme.ts: C design tokens dans fichier dédié (plus d'import circulaire _layout)
- app/_layout.tsx: importe C depuis @/lib/theme, ré-exporte pour compatibilité
- Tous les écrans: import C depuis '@/lib/theme' au lieu de '../_layout'
- Toutes les navigations: router.push({ pathname, params }) au lieu de template strings
-> Fix réel du bug 'impossible d'ouvrir carnet/note' avec Expo Router v6
- package.json: expo-web-browser ajouté (pour Google OAuth étape suivante)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>