diff --git a/locales/rn/ar.json b/locales/rn/ar.json index 04559295..26c04034 100644 --- a/locales/rn/ar.json +++ b/locales/rn/ar.json @@ -716,6 +716,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "كل البريد" + }, + "cross_starred": { + "label_mobile": "كل المميز بنجمة" + }, + "cross_unread": { + "label_mobile": "كل غير المقروء" + }, "language": { "restart_for_direction": "أعد تشغيل التطبيق لتطبيق اتجاه النص الجديد.", "system_default": "افتراضي النظام" diff --git a/locales/rn/ca.json b/locales/rn/ca.json index 323af7d6..25b992eb 100644 --- a/locales/rn/ca.json +++ b/locales/rn/ca.json @@ -721,6 +721,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Tot el correu" + }, + "cross_starred": { + "label_mobile": "Tots els destacats" + }, + "cross_unread": { + "label_mobile": "Tots els no llegits" + }, "language": { "restart_for_direction": "Reinicieu l'aplicació per aplicar la nova direcció del text.", "system_default": "Predeterminat del sistema" diff --git a/locales/rn/cs.json b/locales/rn/cs.json index 0b9bc624..9b199629 100644 --- a/locales/rn/cs.json +++ b/locales/rn/cs.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Veškerá pošta" + }, + "cross_starred": { + "label_mobile": "Vše s hvězdičkou" + }, + "cross_unread": { + "label_mobile": "Vše nepřečtené" + }, "language": { "restart_for_direction": "Pro použití nového směru textu restartujte aplikaci.", "system_default": "Podle systému" diff --git a/locales/rn/da.json b/locales/rn/da.json index 117c8288..6ea62338 100644 --- a/locales/rn/da.json +++ b/locales/rn/da.json @@ -717,6 +717,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Al post" + }, + "cross_starred": { + "label_mobile": "Alle med stjerne" + }, + "cross_unread": { + "label_mobile": "Alle ulæste" + }, "language": { "restart_for_direction": "Genstart appen for at anvende den nye tekstretning.", "system_default": "Systemstandard" diff --git a/locales/rn/de.json b/locales/rn/de.json index b55db009..dbbff9a7 100644 --- a/locales/rn/de.json +++ b/locales/rn/de.json @@ -747,6 +747,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Alle Mails" + }, + "cross_starred": { + "label_mobile": "Alle markierten" + }, + "cross_unread": { + "label_mobile": "Alle ungelesenen" + }, "language": { "restart_for_direction": "Starten Sie die App neu, um die neue Schreibrichtung anzuwenden.", "system_default": "Systemstandard" diff --git a/locales/rn/en.json b/locales/rn/en.json index b96147cb..14c685e0 100644 --- a/locales/rn/en.json +++ b/locales/rn/en.json @@ -1017,6 +1017,15 @@ "description_mobile": "Text size, reduced motion and the accessibility presets are on the Accessibility page." }, "description_mobile": "Customize how the app looks", + "cross_all": { + "label_mobile": "All mail" + }, + "cross_starred": { + "label_mobile": "All starred" + }, + "cross_unread": { + "label_mobile": "All unread" + }, "language": { "restart_for_direction": "Restart the app to apply the new text direction.", "system_default": "System default" diff --git a/locales/rn/es.json b/locales/rn/es.json index f690e208..968bc88a 100644 --- a/locales/rn/es.json +++ b/locales/rn/es.json @@ -726,6 +726,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Todo el correo" + }, + "cross_starred": { + "label_mobile": "Todo destacado" + }, + "cross_unread": { + "label_mobile": "Todo no leído" + }, "language": { "restart_for_direction": "Reinicia la app para aplicar la nueva dirección del texto.", "system_default": "Predeterminado del sistema" diff --git a/locales/rn/fa.json b/locales/rn/fa.json index 352cc673..ba505735 100644 --- a/locales/rn/fa.json +++ b/locales/rn/fa.json @@ -715,6 +715,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "همه ایمیل‌ها" + }, + "cross_starred": { + "label_mobile": "همه ستاره‌دارها" + }, + "cross_unread": { + "label_mobile": "همه خوانده‌نشده‌ها" + }, "language": { "restart_for_direction": "برای اعمال جهت جدید متن، برنامه را دوباره راه‌اندازی کنید.", "system_default": "پیش‌فرض سیستم" diff --git a/locales/rn/fr.json b/locales/rn/fr.json index 95931b81..167137c8 100644 --- a/locales/rn/fr.json +++ b/locales/rn/fr.json @@ -724,6 +724,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Tout le courrier" + }, + "cross_starred": { + "label_mobile": "Tous les favoris" + }, + "cross_unread": { + "label_mobile": "Tous les non lus" + }, "language": { "restart_for_direction": "Redémarrez l'application pour appliquer le nouveau sens du texte.", "system_default": "Par défaut du système" diff --git a/locales/rn/he.json b/locales/rn/he.json index 5bd658a7..3c1877df 100644 --- a/locales/rn/he.json +++ b/locales/rn/he.json @@ -719,6 +719,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "הכל דוא״ל" + }, + "cross_starred": { + "label_mobile": "הכל מסומנים" + }, + "cross_unread": { + "label_mobile": "הכל שלא נקראו" + }, "language": { "restart_for_direction": "הפעל מחדש את האפליקציה כדי להחיל את כיוון הטקסט החדש.", "system_default": "ברירת המחדל של המערכת" diff --git a/locales/rn/hu.json b/locales/rn/hu.json index 82431c74..1ed2b6ce 100644 --- a/locales/rn/hu.json +++ b/locales/rn/hu.json @@ -716,6 +716,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Összes levél" + }, + "cross_starred": { + "label_mobile": "Összes csillagozott" + }, + "cross_unread": { + "label_mobile": "Összes olvasatlan" + }, "language": { "restart_for_direction": "Az új szövegirány alkalmazásához indítsd újra az alkalmazást.", "system_default": "Rendszer alapértelmezése" diff --git a/locales/rn/it.json b/locales/rn/it.json index 71a354d1..d0be99df 100644 --- a/locales/rn/it.json +++ b/locales/rn/it.json @@ -722,6 +722,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Tutta la posta" + }, + "cross_starred": { + "label_mobile": "Tutti gli speciali" + }, + "cross_unread": { + "label_mobile": "Tutti i non letti" + }, "language": { "restart_for_direction": "Riavvia l'app per applicare la nuova direzione del testo.", "system_default": "Predefinita di sistema" diff --git a/locales/rn/ja.json b/locales/rn/ja.json index 0085e962..f41edc30 100644 --- a/locales/rn/ja.json +++ b/locales/rn/ja.json @@ -721,6 +721,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "すべてのメール" + }, + "cross_starred": { + "label_mobile": "すべてのスター付き" + }, + "cross_unread": { + "label_mobile": "すべての未読" + }, "language": { "restart_for_direction": "新しい文字の方向を適用するには、アプリを再起動してください。", "system_default": "システムのデフォルト" diff --git a/locales/rn/ko.json b/locales/rn/ko.json index 2c0ea7c3..a02f31e1 100644 --- a/locales/rn/ko.json +++ b/locales/rn/ko.json @@ -719,6 +719,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "모든 메일" + }, + "cross_starred": { + "label_mobile": "모든 별표" + }, + "cross_unread": { + "label_mobile": "모든 읽지 않음" + }, "language": { "restart_for_direction": "새 텍스트 방향을 적용하려면 앱을 다시 시작해 주세요.", "system_default": "시스템 기본값" diff --git a/locales/rn/lv.json b/locales/rn/lv.json index 0f0a49d7..d597ac2e 100644 --- a/locales/rn/lv.json +++ b/locales/rn/lv.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Visas vēstules" + }, + "cross_starred": { + "label_mobile": "Visi ar zvaigzni" + }, + "cross_unread": { + "label_mobile": "Visi nelasītie" + }, "language": { "restart_for_direction": "Restartējiet lietotni, lai lietotu jauno teksta virzienu.", "system_default": "Sistēmas noklusējums" diff --git a/locales/rn/mn.json b/locales/rn/mn.json index 908a5ba2..b968d194 100644 --- a/locales/rn/mn.json +++ b/locales/rn/mn.json @@ -716,6 +716,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Бүх шуудан" + }, + "cross_starred": { + "label_mobile": "Бүх одтой" + }, + "cross_unread": { + "label_mobile": "Бүгд уншаагүй" + }, "language": { "restart_for_direction": "Текстийн шинэ чиглэлийг хэрэгжүүлэхийн тулд аппыг дахин эхлүүлнэ үү.", "system_default": "Системийн өгөгдмөл" diff --git a/locales/rn/nb.json b/locales/rn/nb.json index f8a75af3..957a89d0 100644 --- a/locales/rn/nb.json +++ b/locales/rn/nb.json @@ -718,6 +718,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "All e-post" + }, + "cross_starred": { + "label_mobile": "Alle stjernemerkede" + }, + "cross_unread": { + "label_mobile": "Alle uleste" + }, "language": { "restart_for_direction": "Start appen på nytt for å bruke den nye tekstretningen.", "system_default": "Systemstandard" diff --git a/locales/rn/nl.json b/locales/rn/nl.json index 9e51494a..a6013024 100644 --- a/locales/rn/nl.json +++ b/locales/rn/nl.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Alle e-mail" + }, + "cross_starred": { + "label_mobile": "Alle met ster" + }, + "cross_unread": { + "label_mobile": "Alle ongelezen" + }, "language": { "restart_for_direction": "Start de app opnieuw om de nieuwe tekstrichting toe te passen.", "system_default": "Systeemstandaard" diff --git a/locales/rn/pl.json b/locales/rn/pl.json index d0bd1aed..2ba5493b 100644 --- a/locales/rn/pl.json +++ b/locales/rn/pl.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Cała poczta" + }, + "cross_starred": { + "label_mobile": "Wszystkie oznaczone gwiazdką" + }, + "cross_unread": { + "label_mobile": "Wszystkie nieprzeczytane" + }, "language": { "restart_for_direction": "Uruchom aplikację ponownie, aby zastosować nowy kierunek tekstu.", "system_default": "Ustawienie systemowe" diff --git a/locales/rn/pt.json b/locales/rn/pt.json index aa5cfd39..3f3466f2 100644 --- a/locales/rn/pt.json +++ b/locales/rn/pt.json @@ -723,6 +723,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Todo o correio" + }, + "cross_starred": { + "label_mobile": "Tudo com estrela" + }, + "cross_unread": { + "label_mobile": "Tudo não lido" + }, "language": { "restart_for_direction": "Reinicie o app para aplicar a nova direção do texto.", "system_default": "Padrão do sistema" diff --git a/locales/rn/ro.json b/locales/rn/ro.json index caa690a2..e9d34c51 100644 --- a/locales/rn/ro.json +++ b/locales/rn/ro.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Toată poșta" + }, + "cross_starred": { + "label_mobile": "Toate cu stea" + }, + "cross_unread": { + "label_mobile": "Toate necitite" + }, "language": { "restart_for_direction": "Reporniți aplicația pentru a aplica noua direcție a textului.", "system_default": "Implicit de sistem" diff --git a/locales/rn/ru.json b/locales/rn/ru.json index acb6a1b7..d95beaa2 100644 --- a/locales/rn/ru.json +++ b/locales/rn/ru.json @@ -724,6 +724,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Вся почта" + }, + "cross_starred": { + "label_mobile": "Все помеченные" + }, + "cross_unread": { + "label_mobile": "Все непрочитанные" + }, "language": { "restart_for_direction": "Перезапустите приложение, чтобы применить новое направление текста.", "system_default": "Как в системе" diff --git a/locales/rn/sk.json b/locales/rn/sk.json index 781787b6..b32fd3ce 100644 --- a/locales/rn/sk.json +++ b/locales/rn/sk.json @@ -719,6 +719,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Všetka pošta" + }, + "cross_starred": { + "label_mobile": "Všetky s hviezdičkou" + }, + "cross_unread": { + "label_mobile": "Všetky neprečítané" + }, "language": { "restart_for_direction": "Na použitie nového smeru textu reštartujte aplikáciu.", "system_default": "Podľa systému" diff --git a/locales/rn/tr.json b/locales/rn/tr.json index 83d0dd16..247a02b4 100644 --- a/locales/rn/tr.json +++ b/locales/rn/tr.json @@ -721,6 +721,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Tüm postalar" + }, + "cross_starred": { + "label_mobile": "Tüm yıldızlılar" + }, + "cross_unread": { + "label_mobile": "Tüm okunmamışlar" + }, "language": { "restart_for_direction": "Yeni metin yönünü uygulamak için uygulamayı yeniden başlatın.", "system_default": "Sistem varsayılanı" diff --git a/locales/rn/uk.json b/locales/rn/uk.json index adb799c5..2f39d344 100644 --- a/locales/rn/uk.json +++ b/locales/rn/uk.json @@ -723,6 +723,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "Уся пошта" + }, + "cross_starred": { + "label_mobile": "Усі позначені" + }, + "cross_unread": { + "label_mobile": "Усі непрочитані" + }, "language": { "restart_for_direction": "Перезапустіть застосунок, щоб застосувати новий напрямок тексту.", "system_default": "Як у системі" diff --git a/locales/rn/zh-TW.json b/locales/rn/zh-TW.json index d3cd06d2..1571a30b 100644 --- a/locales/rn/zh-TW.json +++ b/locales/rn/zh-TW.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "全部郵件" + }, + "cross_starred": { + "label_mobile": "全部已加星號" + }, + "cross_unread": { + "label_mobile": "全部未讀" + }, "language": { "restart_for_direction": "請重新啟動應用程式以套用新的文字方向。", "system_default": "系統預設" diff --git a/locales/rn/zh.json b/locales/rn/zh.json index 235d9105..f0a8782f 100644 --- a/locales/rn/zh.json +++ b/locales/rn/zh.json @@ -720,6 +720,15 @@ } }, "appearance": { + "cross_all": { + "label_mobile": "全部邮件" + }, + "cross_starred": { + "label_mobile": "全部加星标" + }, + "cross_unread": { + "label_mobile": "全部未读" + }, "language": { "restart_for_direction": "请重启应用以应用新的文字方向。", "system_default": "系统默认" diff --git a/src/components/SidebarDrawer.tsx b/src/components/SidebarDrawer.tsx index e6354fdd..b23e627a 100644 --- a/src/components/SidebarDrawer.tsx +++ b/src/components/SidebarDrawer.tsx @@ -27,7 +27,7 @@ import { buildMailboxTree, flattenVisible, mailboxSubtreeIds, ownMailboxes, type MailboxNode, } from '../lib/mailbox-tree'; import { localizeMailboxName } from '../lib/mailbox-label'; -import { showUnifiedSection } from '../lib/unified-section'; +import { showUnifiedSection, visibleCrossViews } from '../lib/unified-section'; import { generateAvatarColor, getAccountInitials } from '../lib/avatar-utils'; import { jmapClient } from '../api/jmap-client'; import { @@ -346,6 +346,9 @@ export default function SidebarDrawer({ visible, onClose, docked = false }: Side const showFolderTotalCount = useSettingsStore((s) => s.showFolderTotalCount); const includeGroupInUnified = useSettingsStore((s) => s.includeGroupInUnified); const unifiedCrossAccount = useSettingsStore((s) => s.unifiedCrossAccount); + const enableCrossUnreadView = useSettingsStore((s) => s.enableCrossUnreadView); + const enableCrossStarredView = useSettingsStore((s) => s.enableCrossStarredView); + const enableCrossAllView = useSettingsStore((s) => s.enableCrossAllView); const notificationMutes = useSettingsStore((s) => s.notificationMutes); const updateSetting = useSettingsStore((s) => s.updateSetting); const keywordDefs = useKeywordsStore((s) => s.keywords); @@ -713,6 +716,9 @@ export default function SidebarDrawer({ visible, onClose, docked = false }: Side const showUnified = showUnifiedSection({ accountCount: accounts.length, unifiedCrossAccount, includeGroupInUnified, hasSharedInbox, }); + const crossViews = visibleCrossViews({ + showUnified, enableCrossUnreadView, enableCrossStarredView, enableCrossAllView, + }); const unifiedCounts = React.useMemo(() => { const pools: Mailbox[][] = [mailboxes]; if (unifiedCrossAccount) { @@ -1054,7 +1060,7 @@ export default function SidebarDrawer({ visible, onClose, docked = false }: Side {/* Unified per-role and cross views */} - {showUnified && ( + {(showUnified || crossViews.length > 0) && ( <> toggleSection('unifiedExpanded', setUnifiedExpanded)}> {unifiedExpanded ? ( @@ -1070,7 +1076,7 @@ export default function SidebarDrawer({ visible, onClose, docked = false }: Side { view: 'unread' as const, Icon: MailOpen, label: t('sidebar.unified_all_unread', 'All unread'), unread: unifiedCounts.crossUnread }, { view: 'starred' as const, Icon: Star, label: t('sidebar.unified_all_starred', 'All starred'), unread: 0 }, { view: 'all' as const, Icon: Mails, label: t('sidebar.unified_all_mail', 'All mail'), unread: unifiedCounts.crossUnread }, - ]).map((row) => ( + ]).filter((row) => crossViews.includes(row.view)).map((row) => ( } @@ -1086,7 +1092,7 @@ export default function SidebarDrawer({ visible, onClose, docked = false }: Side onToggleExpand={() => {}} /> ))} - {unifiedCounts.roles.map((r) => { + {showUnified && unifiedCounts.roles.map((r) => { const Icon = unifiedIcon(r.role); return ( s.showAvatarsInJunk); const showFolderTotalCount = useSettingsStore((s) => s.showFolderTotalCount); const unifiedCrossAccount = useSettingsStore((s) => s.unifiedCrossAccount); + const enableCrossUnreadView = useSettingsStore((s) => s.enableCrossUnreadView); + const enableCrossStarredView = useSettingsStore((s) => s.enableCrossStarredView); + const enableCrossAllView = useSettingsStore((s) => s.enableCrossAllView); const keywordDefs = useKeywordsStore((s) => s.keywords); const invalidateListOrder = useEmailStore((s) => s.invalidateListOrder); const order = React.useMemo(() => sanitizeSortLevels(messageListOrderRaw), [messageListOrderRaw]); @@ -182,10 +185,28 @@ export function LayoutSettings() { update('unifiedCrossAccount', v)} /> + + update('enableCrossUnreadView', v)} /> + + + update('enableCrossStarredView', v)} /> + + + update('enableCrossAllView', v)} /> + diff --git a/src/lib/__tests__/unified-section.test.ts b/src/lib/__tests__/unified-section.test.ts index bba0006a..94ff1216 100644 --- a/src/lib/__tests__/unified-section.test.ts +++ b/src/lib/__tests__/unified-section.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { showUnifiedSection } from '../unified-section'; +import { showUnifiedSection, visibleCrossViews } from '../unified-section'; const base = { accountCount: 1, unifiedCrossAccount: false, includeGroupInUnified: true, hasSharedInbox: false }; @@ -19,3 +19,21 @@ describe('showUnifiedSection (#843)', () => { expect(showUnifiedSection({ ...base, hasSharedInbox: true, includeGroupInUnified: false })).toBe(false); }); }); + +const off = { showUnified: false, enableCrossUnreadView: false, enableCrossStarredView: false, enableCrossAllView: false }; + +describe('visibleCrossViews', () => { + it('lists none for a single account until one is turned on', () => { + expect(visibleCrossViews(off)).toEqual([]); + }); + + it('lists the turned-on views for a single account, in drawer order', () => { + expect(visibleCrossViews({ ...off, enableCrossAllView: true })).toEqual(['all']); + expect(visibleCrossViews({ ...off, enableCrossStarredView: true })).toEqual(['starred']); + expect(visibleCrossViews({ ...off, enableCrossAllView: true, enableCrossUnreadView: true })).toEqual(['unread', 'all']); + }); + + it('keeps all three alongside the unified section, whatever the toggles', () => { + expect(visibleCrossViews({ ...off, showUnified: true })).toEqual(['unread', 'starred', 'all']); + }); +}); diff --git a/src/lib/settings-search.ts b/src/lib/settings-search.ts index 06948ffc..c3511d69 100644 --- a/src/lib/settings-search.ts +++ b/src/lib/settings-search.ts @@ -88,6 +88,9 @@ export const SETTINGS_SEARCH_PATHS: Record = { 'settings.layout.show_folder_total_count', 'settings.layout.show_avatars_in_junk', 'settings.layout.unified_cross_account', + 'settings.appearance.cross_unread', + 'settings.appearance.cross_starred', + 'settings.appearance.cross_all', ], reading: [ 'settings.email_behavior.mark_read', diff --git a/src/lib/unified-section.ts b/src/lib/unified-section.ts index 54d4c518..12a70d6e 100644 --- a/src/lib/unified-section.ts +++ b/src/lib/unified-section.ts @@ -1,3 +1,5 @@ +import type { CrossView } from '../api/unified-inbox'; + /** * Whether the drawer offers the unified mailbox (the "All inboxes" row and * the Unified section), following the webmail's rule (#843): only when the @@ -18,3 +20,28 @@ export function showUnifiedSection(opts: { const crossAccountActive = opts.unifiedCrossAccount && opts.accountCount > 1; return crossAccountActive || (opts.includeGroupInUnified && opts.hasSharedInbox); } + +const CROSS_VIEW_ORDER: CrossView[] = ['unread', 'starred', 'all']; + +/** + * Which cross-folder views (All unread / All starred / All mail) the drawer + * lists. Alongside the unified section they all show, as before. Without it - + * a single account, no group inbox merged in - each one shows once turned on + * in Settings > Layout, like the webmail's per-view toggles: they span the + * inbox and the custom folders, so even for one account they are not a repeat + * of any single folder. + */ +export function visibleCrossViews(opts: { + showUnified: boolean; + enableCrossUnreadView: boolean; + enableCrossStarredView: boolean; + enableCrossAllView: boolean; +}): CrossView[] { + if (opts.showUnified) return [...CROSS_VIEW_ORDER]; + const enabled: Record = { + unread: opts.enableCrossUnreadView, + starred: opts.enableCrossStarredView, + all: opts.enableCrossAllView, + }; + return CROSS_VIEW_ORDER.filter((view) => enabled[view]); +} diff --git a/src/stores/settings-store.ts b/src/stores/settings-store.ts index 6ab2d630..4403619e 100644 --- a/src/stores/settings-store.ts +++ b/src/stores/settings-store.ts @@ -217,6 +217,13 @@ export interface PersistedSettings { // Unified views span every logged-in account instead of just the active // one (own + its shared/group folders). Off by default like the webmail. unifiedCrossAccount: boolean; + // Cross-folder entries of the unified mailbox (All unread / All starred / + // All mail over the inbox and custom folders). They always come with the + // unified section; these opt them in without it, e.g. for a single account + // (parity with the webmail toggles of the same names, off by default). + enableCrossUnreadView: boolean; + enableCrossStarredView: boolean; + enableCrossAllView: boolean; mailAttachmentAction: MailAttachmentAction; attachmentPosition: AttachmentPosition; // Reader body: font for text/plain bodies (#830), gutter around the body, @@ -414,6 +421,9 @@ const DEFAULT_PERSISTED: PersistedSettings = { showFolderTotalCount: true, clearSearchOnFolderChange: false, unifiedCrossAccount: false, + enableCrossUnreadView: false, + enableCrossStarredView: false, + enableCrossAllView: false, mailAttachmentAction: 'preview', attachmentPosition: 'beside-sender', plainTextFont: 'sans',