chore(ideai): synchronise etat de suivi (tickets, agents)
This commit is contained in:
62
.ideai/tickets/177/carnet.md
Normal file
62
.ideai/tickets/177/carnet.md
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
issueRef: "#177"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
updatedAt: 1785318789682
|
||||
---
|
||||
|
||||
## #177 — Cadrage UX (2026-07-29)
|
||||
|
||||
Statut : **cadrage exploitable, révision du lot #171 déjà livré** — même fichier/zone (`_CurrentStepPane`, branche générale reps-only, workout_execution_screen.dart L2851-2899). Le retour utilisateur porte sur le **résultat visuel** de la correction apportée pour #171 (suppression du scroll), pas sur une régression fonctionnelle : la rangée `[Passer l'étape] [···] [Étape suivante]` tient sur une ligne mais rend mal (trois éléments hétérogènes — deux boutons pleine largeur + un bouton icône carré — écrasés côte à côte).
|
||||
|
||||
### Diagnostic
|
||||
Le défaut n'est pas l'absence de place, c'est la **hiérarchie plate** : `Passer l'étape` (contournement, cas rare) et `Étape suivante` (action attendue, cas fréquent) ont exactement le même poids visuel, et le menu `···` (encore plus secondaire : passer le passage/la séquence) est coincé entre les deux au lieu d'être clairement rattaché à l'action secondaire. Cette rangée plate contredit le principe déjà appliqué ailleurs dans ce lot UI (montre, #166) : *une seule action principale, mise en avant ; les actions de contournement reléguées, jamais au même niveau visuel*.
|
||||
|
||||
### Comportement attendu
|
||||
Séparer en deux rangées, primaire au-dessus / secondaire en dessous — reprend la hiérarchie déjà utilisée par la montre (#166) : action attendue mise en avant, contournement discret en dessous.
|
||||
|
||||
```text
|
||||
Pompes tempo
|
||||
|
||||
10
|
||||
RÉPÉTITIONS
|
||||
|
||||
[ ✓ Étape suivante ] ← rangée 1 : pleine largeur, action principale
|
||||
|
||||
[ Passer l'étape ] [···] ← rangée 2 : secondaire, inchangée
|
||||
```
|
||||
|
||||
- **Rangée 1** (nouvelle) : `Étape suivante` seul, `FilledButton.icon`, **pleine largeur** (`Size.fromHeight(48)`), pas de partage de ligne avec un autre bouton. C'est l'action que l'utilisateur va faire dans l'immense majorité des cas (terminer ses répétitions) — elle mérite tout l'espace et toute l'attention.
|
||||
- **Rangée 2** (existante, inchangée) : `Passer l'étape` (`Expanded`) + menu `···` (`Passer ce passage` / `Passer la séquence`), exactement le layout déjà en place pour les étapes **sans** reps (cas général sans le bouton `Étape suivante`, L2851-2884) — donc pas de nouveau composant, juste la suppression du 3ᵉ élément qui polluait cette rangée.
|
||||
- Écart vertical entre les deux rangées : `SizedBox(height: 8)`, cohérent avec les autres espacements de ce fichier (cf. L2774, L2840).
|
||||
- **Mutualisation** : ce becomes le layout standard des boutons de bas d'écran pour **toute** étape ayant une action de complétion explicite (reps sans chrono aujourd'hui ; potentiellement d'autres cas futurs) — une rangée pleine largeur pour l'action principale, une rangée dédiée aux actions de contournement en dessous. Le cas `hasRepsWithStopwatchScore` (L2775-2799, deux boutons `Expanded` côte à côte) reste **inchangé** : ce cas a déjà validé son propre layout à deux boutons de poids égal (pas de `···`), pas concerné par cette révision.
|
||||
|
||||
### Implémentation
|
||||
Dans la branche générale (L2851-2899), remplacer le `Row` unique conditionnel par :
|
||||
|
||||
```dart
|
||||
if (step.type == ExerciseStepType.reps) ...[
|
||||
FilledButton.icon(
|
||||
onPressed: onCompleteStep,
|
||||
style: FilledButton.styleFrom(minimumSize: const Size.fromHeight(48)),
|
||||
icon: const Icon(Icons.check),
|
||||
label: const Text('Étape suivante'),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
],
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: OutlinedButton(
|
||||
onPressed: onSkipStep,
|
||||
style: OutlinedButton.styleFrom(minimumSize: const Size.fromHeight(44)),
|
||||
child: const Text('Passer l’étape'),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
PopupMenuButton<_StepSkipAction>(/* inchangé */),
|
||||
],
|
||||
),
|
||||
```
|
||||
|
||||
Aucune nouvelle donnée, aucun nouveau contrat — pur remaniement de présentation, réutilisation de composants et de styles déjà en place dans le fichier.
|
||||
16
.ideai/tickets/177/issue.md
Normal file
16
.ideai/tickets/177/issue.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
id: "9f2dcd00-5b90-41ad-9215-9c2fa405048c"
|
||||
number: 177
|
||||
title: "[UI] Boutons lors d'une étape avec uniquement un nombre de répétition a revoir"
|
||||
status: "open"
|
||||
priority: "medium"
|
||||
sprint: "d5c18b44-0eec-46db-b8ab-506cfee0bfea"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"f3408f5d-469c-4f64-9485-d8b218f3ff26"}
|
||||
createdAt: 1785318287363
|
||||
updatedAt: 1785318789682
|
||||
version: 4
|
||||
---
|
||||
Quand on a une étape avec uniquement un nombre de répétitions, on a 3 boutons au total qui s'affiche en dessous du nombre de répétitions à faire qui sont, de gauche a droite, "Passer l'étape", trois petit point de menu, "Etape Suivante". Ca rend très mal. J'aimerais que UX voit ce qu'il peut faire sachant qu'il faut garder de la place et de la cohérence avec les autres cas ou il y aurait plus d'informations à afficher
|
||||
Reference in New Issue
Block a user