chore(ideai): synchronise etat de suivi (tickets, agents)
This commit is contained in:
@ -1,6 +1,42 @@
|
||||
---
|
||||
issueRef: "#171"
|
||||
version: 4
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedAt: 1785255293774
|
||||
version: 6
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
updatedAt: 1785311597930
|
||||
---
|
||||
|
||||
## #171 — Cadrage UX (2026-07-28)
|
||||
|
||||
Statut : **nouveau lot, cadrage exploitable, sans lien avec #166/#167/#169** (ces trois tickets portent sur l'app montre `watch_app/`, celui-ci porte sur l'app téléphone, `lib/presentation/workout_execution_screen.dart` — écran d'exécution de séance, panneau étape courante).
|
||||
|
||||
### Constat, vérifié en lecture directe
|
||||
Dans `_CurrentStepPane.build()` (workout_execution_screen.dart:2711-2898), deux mises en page coexistent pour l'étape courante :
|
||||
|
||||
- Cas **reps + score chrono** (`hasRepsWithStopwatchScore`, L2723-2803) : layout en `Column` de hauteur fixe, pas de scroll, boutons `Passer l'étape` / `Étape suivante` **côte à côte en bas**, toujours visibles.
|
||||
- Cas **reps seules** (sans score), branche `else` (L2805-2895) : layout enveloppé dans `SingleChildScrollView` + `IntrinsicHeight`, avec :
|
||||
1. nom de l'étape,
|
||||
2. `Expanded` → `_RepsStepBody` (valeur reps + bouton `Étape suivante`, aligné en haut du `Expanded`),
|
||||
3. ligne `Passer l'étape` + menu `...` (passer passage/séquence), **après** le `Expanded`.
|
||||
|
||||
Comme `_RepsStepBody` ne remplit pas toute la hauteur du `Expanded` (son contenu est aligné en haut via `Align(topCenter)` + `FittedBox`), la ligne `Passer l'étape` se retrouve repoussée en bas du contenu scrollable, potentiellement hors de la zone visible du panneau → scroll nécessaire pour l'atteindre. C'est exactement le symptôme décrit par le ticket, et le bouton `Étape suivante` existe déjà (dans `_RepsStepBody`) mais **pas au même endroit** que `Passer l'étape`.
|
||||
|
||||
### Comportement attendu
|
||||
Aligner le cas reps-seules sur le gabarit déjà validé du cas reps+score chrono (L2769-2793), pour cohérence et sans scroll :
|
||||
|
||||
```text
|
||||
Pompes tempo
|
||||
|
||||
10
|
||||
RÉPÉTITIONS
|
||||
|
||||
[ Passer l'étape ] [...] [ ✓ Étape suivante ]
|
||||
```
|
||||
|
||||
- Supprimer le `SingleChildScrollView` + `IntrinsicHeight` de la branche reps-seules : la hauteur du panneau doit se calculer normalement (nom étape + valeur reps + score input optionnel + une seule ligne de boutons), sans scroll, comme le fait déjà la branche voisine.
|
||||
- Retirer le bouton `Étape suivante` de `_RepsStepBody` (workout_execution_screen.dart:3243-3269) — il ne doit plus être dupliqué à mi-écran. `_RepsStepBody` n'affiche plus que la valeur + le libellé `RÉPÉTITIONS`.
|
||||
- La ligne de boutons en bas devient : `Passer l'étape` (Expanded, comme aujourd'hui) + menu `...` (inchangé, passage/séquence) + `Étape suivante` (nouveau, `FilledButton.icon` avec check, même style que la branche `hasRepsWithStopwatchScore` L2782-2791). Trois éléments sur une seule ligne — largeur téléphone suffisante, pas de contrainte watch ici.
|
||||
- Garder `Passer l'étape` et `Étape suivante` comme deux commandes distinctes (contournement vs validation), même principe que sur la montre (#166) : ne pas les fusionner en un seul bouton.
|
||||
- Si l'étape a aussi un score (`step.hasScore`, saisie manuelle), le `_StepScoreInput` reste affiché entre la valeur reps et la ligne de boutons, comme aujourd'hui (L2843-2854) — ce ticket ne touche pas cette sous-partie, seulement le retrait du scroll et le repositionnement du bouton de validation.
|
||||
|
||||
### Ce qu'il faut pour Architect / DevFrontend
|
||||
Pur remaniement de présentation Flutter dans un seul fichier (`workout_execution_screen.dart`), pas de nouvelle donnée ni de nouveau contrat : il s'agit de réutiliser un layout déjà existant (celui de la branche `hasRepsWithStopwatchScore`) pour la branche reps-seules, et de déplacer un bouton existant (`onCompleteStep`) d'un widget à l'autre. Point de vigilance dev : vérifier que le panneau (`_BoundedAccentPanel`, hauteur contrainte par son parent) a bien assez de place pour ce layout à hauteur fixe sur les plus petites tailles d'écran supportées — sinon réduire les paddings/tailles de police via `FittedBox`/`Theme` déjà utilisés ailleurs dans ce fichier, sans réintroduire de scroll.
|
||||
|
||||
@ -2,15 +2,15 @@
|
||||
id: "1bb57b78-7855-4e19-92e6-6d67c9155447"
|
||||
number: 171
|
||||
title: "[UI] enlever le scrolling dans le cas d'une étape avec répétitions seulement"
|
||||
status: "open"
|
||||
status: "closed"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: []
|
||||
agentRefs: [{"agentId":"f3408f5d-469c-4f64-9485-d8b218f3ff26","role":"assigned"}]
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"57695b92-24d0-4876-837c-76116e70a6ae"}
|
||||
createdAt: 1785255221480
|
||||
updatedAt: 1785255293774
|
||||
version: 4
|
||||
updatedAt: 1785311597930
|
||||
version: 6
|
||||
---
|
||||
Actuellement dans le cas ou une étape contient un nombre de répétitions seulement, le bouton "passer l'étape" est tout en bas et necessite un scrolling. Il faudrait qu'il soit alligné avec le bouton Etape suivante je pense pour éviter le scrolling. Voir avec UX
|
||||
Reference in New Issue
Block a user