fix(editor): Esc over the folder modal no longer closes the editor
The folder modal is built dynamically with no id in the fallback Esc handler's modal list, so Esc fell straight through to the slideover close and shut the editor behind it. The capture handler already bails on any open .modal; mirror that in the fallback by closing a stray .modal before reaching the slideover branch. Covers every dynamically-built modal, not just this one. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -50,15 +50,15 @@ Préparer : 3 entrées `A`, `B`, `C`, dont `A` dans le dossier `Work` avec le ta
|
|||||||
### A6 · glisser une **multi-sélection** sur un dossier (`moveEntriesToFolder`) ⚠️
|
### A6 · glisser une **multi-sélection** sur un dossier (`moveEntriesToFolder`) ⚠️
|
||||||
- **ACTION** : cocher `A` + `B` → glisser sur `Perso` → recharger (F5 impossible : relancer l'app)
|
- **ACTION** : cocher `A` + `B` → glisser sur `Perso` → recharger (F5 impossible : relancer l'app)
|
||||||
- **ATTENDU** : dossier changé **et** nom / username / site / tags **intacts**.
|
- **ATTENDU** : dossier changé **et** nom / username / site / tags **intacts**.
|
||||||
- **Historique** : ce chemin n'appelait pas `withEncryptedMeta` → il blanchissait les métadonnées chiffrées. Si des entrées ont été déplacées ainsi avant le fix, elles sont peut-être déjà vides — vérifier.
|
- **Historique** : ce chemin n'appelait pas `withEncryptedMeta` → il blanchissait les métadonnées chiffrées. Si des entrées ont été déplacées ainsi avant le fix, elles sont peut-être déjà vides — vérifier.✅
|
||||||
|
|
||||||
### A7 · suppression du dossier de l'entrée éditée
|
### A7 · suppression du dossier de l'entrée éditée
|
||||||
- **ACTION** : `A` (dossier `Work`) ouverte + dirty → sidebar → supprimer le dossier `Work` → Save
|
- **ACTION** : `A` (dossier `Work`) ouverte + dirty → sidebar → supprimer le dossier `Work` → Save
|
||||||
- **ATTENDU** : le select de l'éditeur passe à `All` ; après Save l'entrée est dans `All`, le dossier supprimé **ne réapparaît pas**.
|
- **ATTENDU** : le select de l'éditeur passe à `All` ; après Save l'entrée est dans `All`, le dossier supprimé **ne réapparaît pas**.✅
|
||||||
|
|
||||||
### A8 · tags édités des deux côtés
|
### A8 · tags édités des deux côtés
|
||||||
- **ACTION** : `A` ouverte, ajouter le chip `mine` dans l'éditeur (ne pas sauver) → batch *Add tag* `shared` sur `A` → Save
|
- **ACTION** : `A` ouverte, ajouter le chip `mine` dans l'éditeur (ne pas sauver) → batch *Add tag* `shared` sur `A` → Save
|
||||||
- **ATTENDU** : `old, mine, shared` — aucun des trois perdu.
|
- **ATTENDU** : `old, mine, shared` — aucun des trois perdu.✅
|
||||||
|
|
||||||
### A9 · favori / épingle pendant l'édition (non-régression)
|
### A9 · favori / épingle pendant l'édition (non-régression)
|
||||||
- **ACTION** : `A` ouverte + dirty → cliquer ★ et 📌 sur la ligne `A` → Save
|
- **ACTION** : `A` ouverte + dirty → cliquer ★ et 📌 sur la ligne `A` → Save
|
||||||
|
|||||||
@@ -8003,6 +8003,14 @@ async function init() {
|
|||||||
closeGen();
|
closeGen();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Any other open modal — the folder modal is built dynamically and
|
||||||
|
// has no id in this list, so without this Esc fell through to the
|
||||||
|
// slideover close below and shut the editor behind it. Closing a
|
||||||
|
// stray .modal is just .remove() (how its backdrop click closes).
|
||||||
|
// The static modals above never reach here (their id checks return
|
||||||
|
// first), so this only ever catches the dynamic ones.
|
||||||
|
const strayModal = document.querySelector('.modal:not(.is-hidden)');
|
||||||
|
if (strayModal) { strayModal.remove(); return; }
|
||||||
if ($('#slideover').classList.contains('is-open')) {
|
if ($('#slideover').classList.contains('is-open')) {
|
||||||
requestCloseSlideOver();
|
requestCloseSlideOver();
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user