fix(mobile): lance la vérification de mise à jour à chaque ouverture (#106) #114

Merged
kyuno merged 1 commit from fix/mobile-update-check-on-open into main 2026-09-08 03:41:35 +02:00
Owner

Contexte

Closes #106.

useAppUpdateCheck tourne au montage de <UpdateBanner />, mais celui-ci n'était monté que dans AppLayout, derrière RequireAuth. Un utilisateur non connecté sur l'app native voit LandingPage, AppLayout n'est jamais monté → aucune vérification tant qu'on n'est pas connecté. Le back suppose l'inverse (apps/api/src/modules/mobile/mobile.routes.ts : « the native update check (issue #66) runs on every app start, session or not »).

Changements

  • App.tsx : <UpdateBanner /> monté hors <Routes>, rendu pour toute route quel que soit l'état d'auth. Garde !isNativePlatform() et throttle 6 h inchangés ; rend toujours null sur le web.
  • AppLayout.tsx : retrait du <UpdateBanner /> qui y vivait.
  • update-banner.scss : passe en position: fixed (bandeau haut, env(safe-area-inset-top), z-index: 100), pour ne pas entrer dans la mise en page / le calcul de hauteur d'une page routée (.app-layout est height: 100vh; overflow: hidden).

Tests

Pas de test e2e : Capacitor.isNativePlatform() n'a pas de couture pour simuler le natif depuis un run web (posture déjà assumée pour useAppUpdateCheck / UpdateBanner, voir app-settings-page.cy.ts). Suite e2e existante (layout / smoke / app-settings) revérifiée en local, sans régression du déplacement. pnpm lint + pnpm --filter web build OK.

🤖 Generated with Claude Code

## Contexte `Closes #106`. `useAppUpdateCheck` tourne au montage de `<UpdateBanner />`, mais celui-ci n'était monté que dans `AppLayout`, **derrière `RequireAuth`**. Un utilisateur non connecté sur l'app native voit `LandingPage`, `AppLayout` n'est jamais monté → aucune vérification tant qu'on n'est pas connecté. Le back suppose l'inverse (`apps/api/src/modules/mobile/mobile.routes.ts` : « the native update check (issue #66) runs on every app start, session or not »). ## Changements - `App.tsx` : `<UpdateBanner />` monté hors `<Routes>`, rendu pour toute route quel que soit l'état d'auth. Garde `!isNativePlatform()` et throttle 6 h inchangés ; rend toujours `null` sur le web. - `AppLayout.tsx` : retrait du `<UpdateBanner />` qui y vivait. - `update-banner.scss` : passe en `position: fixed` (bandeau haut, `env(safe-area-inset-top)`, `z-index: 100`), pour ne pas entrer dans la mise en page / le calcul de hauteur d'une page routée (`.app-layout` est `height: 100vh; overflow: hidden`). ## Tests Pas de test e2e : `Capacitor.isNativePlatform()` n'a pas de couture pour simuler le natif depuis un run web (posture déjà assumée pour `useAppUpdateCheck` / `UpdateBanner`, voir `app-settings-page.cy.ts`). Suite e2e existante (layout / smoke / app-settings) revérifiée en local, sans régression du déplacement. `pnpm lint` + `pnpm --filter web build` OK. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
kyuno added the
Medium
bug
planned
labels 2026-09-08 02:09:56 +02:00
kyuno added 1 commit 2026-09-08 02:09:56 +02:00
fix(mobile): lance la vérification de mise à jour à chaque ouverture (#106)
Some checks failed
CI / lint (push) Successful in 2m47s
CI / build (push) Successful in 4m8s
CI / intent-service-test (push) Successful in 6m13s
CI / e2e (push) Failing after 9m3s
CI / test (push) Successful in 31m5s
CI / build-android (push) Has been skipped
adf5d1a2eb
`useAppUpdateCheck` tournait au montage de `<UpdateBanner />`, mais celui-ci
n'était monté que dans `AppLayout`, derrière `RequireAuth` : un utilisateur
non connecté sur l'app native voit `LandingPage`, `AppLayout` n'est jamais
monté, donc aucune vérification tant qu'on n'est pas connecté — alors que
le back suppose l'inverse (`mobile.routes.ts` : « runs on every app start,
session or not »).

- `<UpdateBanner />` monté dans `App.tsx`, hors `<Routes>`, donc rendu pour
  toute route quel que soit l'état d'auth. Garde `!isNativePlatform()` et
  throttle 6 h inchangés ; rend toujours `null` sur le web.
- `update-banner.scss` : passe en `position: fixed` (bandeau haut,
  `env(safe-area-inset-top)`, `z-index: 100`) pour ne pas entrer dans la
  mise en page / le calcul de hauteur d'une page routée (`.app-layout` est
  `height: 100vh; overflow: hidden`).

Pas de test e2e : `Capacitor.isNativePlatform()` n'a pas de couture pour
simuler le natif depuis un run web (posture déjà assumée pour
`useAppUpdateCheck` / `UpdateBanner`, voir `app-settings-page.cy.ts`). Suite
e2e existante (layout / smoke / app-settings) revérifiée : aucun régression.

Closes #106

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno force-pushed fix/mobile-update-check-on-open from adf5d1a2eb to 3df24fe71c 2026-09-08 03:04:57 +02:00 Compare
kyuno merged commit c17b5b0060 into main 2026-09-08 03:41:35 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kyuno/batchCooking#114
No description provided.