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:
r-zakarya
2026-07-23 19:17:45 +01:00
parent 6f4363bde6
commit a95becd582
2 changed files with 11 additions and 3 deletions
+3 -3
View File
@@ -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`) ⚠️
- **ACTION** : cocher `A` + `B` → glisser sur `Perso` → recharger (F5 impossible : relancer l'app)
- **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
- **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
- **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)
- **ACTION** : `A` ouverte + dirty → cliquer ★ et 📌 sur la ligne `A` → Save
+8
View File
@@ -8003,6 +8003,14 @@ async function init() {
closeGen();
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')) {
requestCloseSlideOver();
return;