Go to a folder by name, with g then o
Requested in #233. The `g` shortcuts cover the handful of folders every account has -- inbox, sent, drafts -- and nothing reaches the dozens a Sieve rule fills, which is where somebody with a real folder tree spends their time. `g o` opens the picker, you type part of a name, and you are there. The picker is the one the move action already uses, with one difference that only shows up on shared mail: it selected folders by `mayAddItems`, which is right for a destination and wrong for a place to go. A shared folder you may read but not file into is somewhere you can visit. The right is now a parameter, named for what it is asking rather than for which caller wants it. Hosted in AppShell rather than in the mail view, because the `g` shortcuts are global and the mail view is not mounted to hear about it -- pressing this from the calendar should still take you to a folder, and now does. `o` on its own opens a conversation and does not clash: a pending prefix is tried before a bare key. That was already true and nothing said so, so there are now five tests for the sequence machinery -- including that an abandoned prefix costs the prefix and not the keystroke after it, which is the nicer behaviour of the two and was undocumented. Checked in a browser against the mock: opened from the calendar, filtered to a nested folder, landed on it, and `o` still opened a conversation afterwards. Closes #233.
This commit is contained in:
@@ -55,6 +55,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Zu Ordner springen…",
|
||||
"Set for everyone here. You cannot change this.": "Für alle hier festgelegt. Sie können dies nicht ändern.",
|
||||
"Export iCAL file": "iCAL-Datei exportieren",
|
||||
"Could not export this calendar: {error}": "Dieser Kalender konnte nicht exportiert werden: {error}",
|
||||
|
||||
@@ -47,6 +47,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Ir a la carpeta…",
|
||||
"Set for everyone here. You cannot change this.": "Definido para todos aquí. No puedes cambiarlo.",
|
||||
"Export iCAL file": "Exportar archivo iCAL",
|
||||
"Could not export this calendar: {error}": "No se pudo exportar este calendario: {error}",
|
||||
|
||||
@@ -52,6 +52,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Aller au dossier…",
|
||||
"Set for everyone here. You cannot change this.": "Défini pour tout le monde ici. Vous ne pouvez pas le modifier.",
|
||||
"Export iCAL file": "Exporter un fichier iCAL",
|
||||
"Could not export this calendar: {error}": "Impossible d’exporter ce calendrier : {error}",
|
||||
|
||||
@@ -46,6 +46,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "フォルダーへ移動…",
|
||||
"Set for everyone here. You cannot change this.": "この環境全体で設定されています。変更できません。",
|
||||
"Export iCAL file": "iCAL ファイルをエクスポート",
|
||||
"Could not export this calendar: {error}": "このカレンダーをエクスポートできませんでした: {error}",
|
||||
|
||||
@@ -43,6 +43,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Ga naar map…",
|
||||
"Set for everyone here. You cannot change this.": "Hier voor iedereen ingesteld. U kunt dit niet wijzigen.",
|
||||
"Export iCAL file": "iCAL-bestand exporteren",
|
||||
"Could not export this calendar: {error}": "Kon deze agenda niet exporteren: {error}",
|
||||
|
||||
@@ -50,6 +50,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Ir para a pasta…",
|
||||
"Set for everyone here. You cannot change this.": "Definido para todos aqui. Você não pode alterar isto.",
|
||||
"Export iCAL file": "Exportar arquivo iCAL",
|
||||
"Could not export this calendar: {error}": "Não foi possível exportar esta agenda: {error}",
|
||||
|
||||
@@ -49,6 +49,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Перейти к папке…",
|
||||
"Set for everyone here. You cannot change this.": "Задано для всех здесь. Изменить нельзя.",
|
||||
"Export iCAL file": "Экспортировать файл iCAL",
|
||||
"Could not export this calendar: {error}": "Не удалось экспортировать этот календарь: {error}",
|
||||
|
||||
@@ -43,6 +43,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "Перейти до теки…",
|
||||
"Set for everyone here. You cannot change this.": "Задано для всіх тут. Змінити не можна.",
|
||||
"Export iCAL file": "Експортувати файл iCAL",
|
||||
"Could not export this calendar: {error}": "Не вдалося експортувати цей календар: {error}",
|
||||
|
||||
@@ -45,6 +45,7 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
"Go to folder…": "转到文件夹…",
|
||||
"Set for everyone here. You cannot change this.": "已为此处所有人设定,您无法更改。",
|
||||
"Export iCAL file": "导出 iCAL 文件",
|
||||
"Could not export this calendar: {error}": "无法导出此日历:{error}",
|
||||
|
||||
Reference in New Issue
Block a user