- সারি
- ৩০ আগস্ট, ২০২৬ এ ১০:০১ PM UTC
- লেখক
- kamo
- মন্তব্য@ info: status
- 8d73669
Right-clicking a message offered Reply, Reply all, Forward, Report Spam, Archive, Label and Delete. Filing it anywhere other than Archive meant dismissing the menu, ticking the row's box, and using the selection bar — a detour nobody has cause to guess at, and the reason this came in as a request. The reading pane's own menu had the same gap. The two are one menu, so one entry fixes both, placed between Archive and Label: Archive is a move with the destination already chosen, and that is the order the selection bar already lists them in. Which messages it moves follows the rule `v` has always followed. Right- clicking a row that is part of the ticked selection is a gesture about the selection, so the bulk picker opens on all of them and its header says how many — that is the "(s)" in the request. A row nobody ticked, and the reading pane, are about the one message the menu was opened on; borrowing the selection there would move mail the member never pointed at, or, with the boxes empty, nothing at all. Archive now goes through that same single-message move rather than its own fetch(). It had been leaving the reading pane showing a message it had just filed elsewhere, because a move has to take the row out of the list, close the pane over it, and mark both folders' counts stale — which is not obvious, and is worth deriving once. Verified: 375 tests pass across app/components/messages and app/lib/email, 4302 across the repo; tsc clean on the .next-excluded config; eslint on the touched files byte-identical to baseline (0 errors, 8 pre-existing warnings). The menu was rendered and screenshotted to confirm the entry sits where the report asked. No new translation keys — browser.moveToFolder already ships in all 21 locales. Note: check-i18n-keys is red on main, 15 keys, all from the smart-folders commit at 0357c52b awaiting its dictionary re-sync. Identical before and after this change.