@bobfrankston/rmfmail 1.1.101 → 1.1.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/app.bundle.js +2 -2
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +14 -8
- package/client/app.js.map +1 -1
- package/client/app.ts +14 -8
- package/client/components/message-viewer.js +5 -1
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +5 -1
- package/client/compose/compose.bundle.js +14 -3
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +34 -9
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +35 -10
- package/package.json +7 -7
- package/packages/mailx-core/index.d.ts +1 -0
- package/packages/mailx-core/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +21 -15
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +23 -14
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-store/db.d.ts +1 -0
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +39 -16
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +34 -15
- package/packages/mailx-store/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-12320 → node_modules.npmglobalize-stash-22936}/.package-lock.json +0 -0
package/client/app.js
CHANGED
|
@@ -3044,20 +3044,26 @@ document.addEventListener("keydown", (e) => {
|
|
|
3044
3044
|
}
|
|
3045
3045
|
}
|
|
3046
3046
|
// Ctrl+D or Delete = Delete selected messages.
|
|
3047
|
-
// P15: don't hijack Delete inside text inputs / textareas / contenteditable
|
|
3048
|
-
//
|
|
3049
|
-
//
|
|
3050
|
-
//
|
|
3051
|
-
//
|
|
3052
|
-
//
|
|
3053
|
-
// focus is
|
|
3047
|
+
// P15: don't hijack Delete inside text inputs / textareas / contenteditable.
|
|
3048
|
+
// Single-selection-while-typing was the bug Bob reported 2026-05-20:
|
|
3049
|
+
// search input has focus, list has an auto-selected row, user presses
|
|
3050
|
+
// Delete to backspace a character → mailx hard-deletes the row. Data loss.
|
|
3051
|
+
//
|
|
3052
|
+
// The 2026-05-09 multi-select carve-out (Delete-key works on a list
|
|
3053
|
+
// selection even when focus drifted into search) is preserved only for
|
|
3054
|
+
// *explicit* multi-select (>1 row). Single selection is ALWAYS the
|
|
3055
|
+
// auto-selected first row — never an explicit "delete this" intent when
|
|
3056
|
+
// you're typing in search. So:
|
|
3057
|
+
// - focus in editable + ≤1 selected → native text edit (delete char)
|
|
3058
|
+
// - focus in editable + >1 selected → user multi-selected on purpose, run delete
|
|
3059
|
+
// - focus elsewhere → run delete
|
|
3054
3060
|
if ((e.ctrlKey && e.key === "d") || e.key === "Delete") {
|
|
3055
3061
|
const t = e.target;
|
|
3056
3062
|
const tag = t?.tagName;
|
|
3057
3063
|
const editable = t?.isContentEditable;
|
|
3058
3064
|
const inEditable = tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT" || editable;
|
|
3059
3065
|
const listSelectionCount = document.querySelectorAll("#ml-body .ml-row.selected").length;
|
|
3060
|
-
if (inEditable && listSelectionCount
|
|
3066
|
+
if (inEditable && listSelectionCount <= 1)
|
|
3061
3067
|
return;
|
|
3062
3068
|
e.preventDefault();
|
|
3063
3069
|
deleteSelection();
|