Move a folder from its menu, with the same picker as moving mail #357

Closed
opened 2026-09-15 14:00:24 +00:00 by jcoffey-dev · 0 comments
Owner

Closes #355

A folder could only be moved by dragging it, which is slow in a long list and isn't offered on touch screens. The folder menu now has Move to…, which opens the searchable picker that moving messages already uses, with a Top level row above the folders.

  • MailboxPicker gains optional allow (an extra per-folder test) and root (the top-level row). It works with search and the arrow keys. Moving messages is unchanged.
  • canMoveFolderTo in lib/folderMove.ts applies the drop rules plus mayRename on the moved folder and mayCreateChild on the destination. Both rights only refuse on shared mail.
  • The move goes through the existing moveFolder, so the toast and the expanded destination match a drop.
  • Menu item is disabled for role folders and folders without mayRename.

Translation: two new strings, "Move “{name}” to…" and "Top level", are in all nine catalogues (1438/1454 each, 16 falling back, same as main). No native review yet.

Checked: typecheck, 1218 tests (3 new in folderMove.test.ts), build, and i18n:check. Tried by hand against the mock.

Merged 2026-09-15 as coffey-labs/ihasmail@b735685416

Rebuilt from: GH Archive, git history, session transcript.

Closes #355 A folder could only be moved by dragging it, which is slow in a long list and isn't offered on touch screens. The folder menu now has **Move to…**, which opens the searchable picker that moving messages already uses, with a **Top level** row above the folders. - `MailboxPicker` gains optional `allow` (an extra per-folder test) and `root` (the top-level row). It works with search and the arrow keys. Moving messages is unchanged. - `canMoveFolderTo` in `lib/folderMove.ts` applies the drop rules plus `mayRename` on the moved folder and `mayCreateChild` on the destination. Both rights only refuse on shared mail. - The move goes through the existing `moveFolder`, so the toast and the expanded destination match a drop. - Menu item is disabled for role folders and folders without `mayRename`. **Translation:** two new strings, "Move “{name}” to…" and "Top level", are in all nine catalogues (1438/1454 each, 16 falling back, same as main). No native review yet. **Checked:** typecheck, 1218 tests (3 new in `folderMove.test.ts`), build, and i18n:check. Tried by hand against the mock. **Merged** 2026-09-15 as coffey-labs/ihasmail@b7356854168a <sub>Rebuilt from: GH Archive, git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.