fix(mobile): bouton mode lecture visible uniquement fichier ouvert (BUG-016)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# #69 - Éditeur mobile natif — Interface tactile optimisée
|
||||
|
||||
> **Statut :** ✅ Terminé — 100 % implémenté + 22 tests frontend (2026-09-11)
|
||||
> **Statut :** ✅ Terminé — 100 % implémenté + 24 tests frontend (2026-09-12)
|
||||
> **Effort :** 2-3 jours (réalisé) | **Impact :** 🟢
|
||||
> **Références :** [Roadmap](../ROADMAP.md) · [Changelog](../../CHANGELOG.md)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
- `frontend/index.html` — section « Édition mobile » du guide intégré + lien de navigation
|
||||
- `frontend/locales/{fr,en}.json` — clés `mobile_editor.*` et `help.mobile_editor_*`
|
||||
- `frontend/js/app.js` — appel `initMobileEditor()` au démarrage
|
||||
- `tests/frontend/mobile-editor.test.mjs` — 22 tests JSDOM (helpers + câblage DOM)
|
||||
- `tests/frontend/mobile-editor.test.mjs` — 24 tests JSDOM (helpers + câblage DOM)
|
||||
- `.gitea/workflows/ci.yml` — test ajouté au job `lint`
|
||||
|
||||
- **Description :** sur téléphone et tablette, l'édition et la lecture s'adaptent au tactile :
|
||||
@@ -100,17 +100,24 @@ Le bouton flottant `📖` (`#me-reading-btn`) bascule `body.reading-mode` :
|
||||
borné avec message si extrémité atteinte) ;
|
||||
- l'état est mémorisé (`obsigate-reading-mode`) et restauré au rechargement sur mobile.
|
||||
|
||||
**Visibilité conditionnelle (BUG-016).** Le bouton `📖` n'est affiché que si un **fichier est
|
||||
ouvert** (`state.currentPath`) **et** que le panneau assistant est fermé : sinon il passait
|
||||
au-dessus du panneau mobile plein écran et masquait le bouton d'envoi. `updateReadingButtonVisibility()`
|
||||
est appelé à l'init, à chaque mutation de `#content-area` (MutationObserver) et sur les événements
|
||||
`bookslm:opened` / `bookslm:closed`.
|
||||
|
||||
---
|
||||
|
||||
## Tests
|
||||
|
||||
`tests/frontend/mobile-editor.test.mjs` (JSDOM, 22 tests) couvre :
|
||||
`tests/frontend/mobile-editor.test.mjs` (JSDOM, 24 tests) couvre :
|
||||
|
||||
- `FORMAT_ACTIONS`, `clampZoom`, `detectSwipe` (seuil, dominance verticale, gauche/droite) ;
|
||||
- `formatChange` pour bold/italic/code/liste/lien, avec et sans sélection, toggle et ligne unique ;
|
||||
- `insertText`, `applyFormatToTextarea`, `applyEditorFontSize` (clamp + persistance) ;
|
||||
- le câblage DOM : construction de `#me-toolbar`, idempotence, contrôles du mode lecture,
|
||||
bascule `toggleReadingMode`/`isReadingMode`.
|
||||
bascule `toggleReadingMode`/`isReadingMode`, et visibilité conditionnelle de `#me-reading-btn`
|
||||
(fichier ouvert + assistant fermé).
|
||||
|
||||
Les chemins réseau (backlinks, fichiers adjacents) et les gestes réels restent à valider en E2E
|
||||
navigateur / test manuel mobile.
|
||||
|
||||
Reference in New Issue
Block a user