This commit is contained in:
Linus Rath
2026-07-07 23:44:34 +02:00
26 changed files with 128 additions and 10 deletions
+2 -1
View File
@@ -40,6 +40,7 @@ export function EmailListItem({ email, selected, onClick, onDoubleClick, onConte
const density = useSettingsStore((state) => state.density); const density = useSettingsStore((state) => state.density);
const mailLayout = useSettingsStore((state) => state.mailLayout); const mailLayout = useSettingsStore((state) => state.mailLayout);
const emailKeywords = useSettingsStore((state) => state.emailKeywords); const emailKeywords = useSettingsStore((state) => state.emailKeywords);
const tintListRowsByTag = useSettingsStore((state) => state.tintListRowsByTag);
const showAvatarsInJunk = useSettingsStore((state) => state.showAvatarsInJunk); const showAvatarsInJunk = useSettingsStore((state) => state.showAvatarsInJunk);
const { identities } = useAuthStore(); const { identities } = useAuthStore();
const isChecked = selectedEmailIds.has(email.id); const isChecked = selectedEmailIds.has(email.id);
@@ -68,7 +69,7 @@ export function EmailListItem({ email, selected, onClick, onDoubleClick, onConte
const keywordDefs = colorTagIds.map(id => emailKeywords.find(k => k.id === id) ?? { id, label: id, color: 'gray' }); const keywordDefs = colorTagIds.map(id => emailKeywords.find(k => k.id === id) ?? { id, label: id, color: 'gray' });
// Use first tag for background coloring // Use first tag for background coloring
const keywordDef = keywordDefs[0] ?? null; const keywordDef = keywordDefs[0] ?? null;
const colorTag = keywordDef ? KEYWORD_PALETTE[keywordDef.color]?.bg ?? null : null; const colorTag = (tintListRowsByTag && keywordDef) ? KEYWORD_PALETTE[keywordDef.color]?.bg ?? null : null;
// Drag and drop functionality // Drag and drop functionality
const { dragHandlers, isDragging } = useEmailDrag({ const { dragHandlers, isDragging } = useEmailDrag({
+27 -6
View File
@@ -2117,6 +2117,12 @@ export function EmailViewer({
fit - the latter wraps header text to one character per line, which reads fit - the latter wraps header text to one character per line, which reads
as 90deg-rotated vertical headers (issue #409). */ as 90deg-rotated vertical headers (issue #409). */
html { overflow: hidden; height: auto !important; } html { overflow: hidden; height: auto !important; }
/* Some emails put height:100% on a full-bleed wrapper table/div (not html/body),
which - with body's overflow:hidden - clips the content to a sliver, and the
scrollHeight-based auto-resize then locks the iframe short (a Box.co.il
verification email rendered as a logo-only 150px strip). Neutralise the
full-height trick on any element so the body grows to its content. */
[style*="height:100%"], [style*="height: 100%"] { height: auto !important; }
body { margin: 0; padding: ${bodyPadding}; overflow-x: auto; overflow-y: hidden; height: auto !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; line-height: 1.6; color: #1a1a1a; background: #ffffff; word-wrap: break-word; overflow-wrap: break-word; } body { margin: 0; padding: ${bodyPadding}; overflow-x: auto; overflow-y: hidden; height: auto !important; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; line-height: 1.6; color: #1a1a1a; background: #ffffff; word-wrap: break-word; overflow-wrap: break-word; }
@media (max-width: 640px) { body { padding-left: ${mobileBodyPaddingX}; padding-right: ${mobileBodyPaddingX}; } } @media (max-width: 640px) { body { padding-left: ${mobileBodyPaddingX}; padding-right: ${mobileBodyPaddingX}; } }
img { max-width: 100% !important; height: auto !important; } img { max-width: 100% !important; height: auto !important; }
@@ -2164,15 +2170,30 @@ export function EmailViewer({
const doc = iframe.contentDocument; const doc = iframe.contentDocument;
if (doc?.body) { if (doc?.body) {
// Auto-resize iframe to fit content // Auto-resize iframe to fit content
const resizeObserver = new ResizeObserver(() => { // Measure max(documentElement, body): a height:100% wrapper can leave
const height = doc.documentElement.scrollHeight; // documentElement.scrollHeight short while the real content lives in body.
const applyHeight = () => {
if (iframe.contentDocument !== doc) return; // navigated away; stale
const height = Math.max(doc.documentElement.scrollHeight, doc.body.scrollHeight);
iframe.style.height = height + 'px'; iframe.style.height = height + 'px';
lastBodyHeightRef.current = height; lastBodyHeightRef.current = height;
}); };
const resizeObserver = new ResizeObserver(applyHeight);
resizeObserver.observe(doc.body); resizeObserver.observe(doc.body);
const initialHeight = doc.documentElement.scrollHeight; applyHeight();
iframe.style.height = initialHeight + 'px'; // The ResizeObserver only fires on body's border box; a content overflow
lastBodyHeightRef.current = initialHeight; // that grows scrollHeight without resizing that box (e.g. a height:100%
// wrapper, or images that reflow the layout after onload) is otherwise
// missed and the iframe stays short. Re-measure on a fixed cadence over a
// short settle window, then stop — a self-clearing catch-all that does
// not depend on image load/error events firing (blocked images may fire
// neither). Cheap: ~12 scrollHeight reads, no early-stop heuristic to
// mis-trigger on a brief-stable-then-grow reflow.
const poll = window.setInterval(() => {
if (iframe.contentDocument !== doc) { window.clearInterval(poll); return; }
applyHeight();
}, 200);
window.setTimeout(() => window.clearInterval(poll), 2400);
setIframeReady(true); setIframeReady(true);
// Hide images that fail to load (dead/mixed-content/unreachable external // Hide images that fail to load (dead/mixed-content/unreachable external
+4 -2
View File
@@ -90,6 +90,7 @@ const SingleEmailItem = React.forwardRef<HTMLDivElement, SingleEmailItemProps>(
const showRecipient = currentMailboxRole === 'sent' || currentMailboxRole === 'drafts'; const showRecipient = currentMailboxRole === 'sent' || currentMailboxRole === 'drafts';
const sender = showRecipient ? (email.to?.[0] ?? email.from?.[0]) : email.from?.[0]; const sender = showRecipient ? (email.to?.[0] ?? email.from?.[0]) : email.from?.[0];
const emailKeywords = useSettingsStore((state) => state.emailKeywords); const emailKeywords = useSettingsStore((state) => state.emailKeywords);
const tintListRowsByTag = useSettingsStore((state) => state.tintListRowsByTag);
const density = useSettingsStore((state) => state.density); const density = useSettingsStore((state) => state.density);
const mailLayout = useSettingsStore((state) => state.mailLayout); const mailLayout = useSettingsStore((state) => state.mailLayout);
const timeFormat = useSettingsStore((state) => state.timeFormat); const timeFormat = useSettingsStore((state) => state.timeFormat);
@@ -113,7 +114,7 @@ const SingleEmailItem = React.forwardRef<HTMLDivElement, SingleEmailItemProps>(
const tagIds = getEmailColorTags(email.keywords); const tagIds = getEmailColorTags(email.keywords);
const resolvedKeywordDefs = tagIds.map(id => emailKeywords.find(k => k.id === id) ?? { id, label: id, color: 'gray' }); const resolvedKeywordDefs = tagIds.map(id => emailKeywords.find(k => k.id === id) ?? { id, label: id, color: 'gray' });
const resolvedKeywordDef = resolvedKeywordDefs[0] ?? null; const resolvedKeywordDef = resolvedKeywordDefs[0] ?? null;
const resolvedColorTag = (() => { const resolvedColorTag = !tintListRowsByTag ? null : (() => {
if (colorTag) return colorTag; if (colorTag) return colorTag;
return resolvedKeywordDef ? KEYWORD_PALETTE[resolvedKeywordDef.color]?.bg ?? null : null; return resolvedKeywordDef ? KEYWORD_PALETTE[resolvedKeywordDef.color]?.bg ?? null : null;
})(); })();
@@ -494,8 +495,9 @@ export const ThreadListItem = React.forwardRef<HTMLDivElement, ThreadListItemPro
const threadColor = getThreadColorTag(thread.emails); const threadColor = getThreadColorTag(thread.emails);
const emailKeywordDefs = useSettingsStore((state) => state.emailKeywords); const emailKeywordDefs = useSettingsStore((state) => state.emailKeywords);
const tintListRowsByTag = useSettingsStore((state) => state.tintListRowsByTag);
const keywordDef = threadColor ? (emailKeywordDefs.find(k => k.id === threadColor) ?? { id: threadColor, label: threadColor, color: 'gray' }) : null; const keywordDef = threadColor ? (emailKeywordDefs.find(k => k.id === threadColor) ?? { id: threadColor, label: threadColor, color: 'gray' }) : null;
const colorTag = keywordDef ? KEYWORD_PALETTE[keywordDef.color]?.bg ?? null : null; const colorTag = (tintListRowsByTag && keywordDef) ? KEYWORD_PALETTE[keywordDef.color]?.bg ?? null : null;
const isSelected = selectedEmailId === latestEmail.id || const isSelected = selectedEmailId === latestEmail.id ||
thread.emails.some(e => e.id === selectedEmailId); thread.emails.some(e => e.id === selectedEmailId);
+8 -1
View File
@@ -118,7 +118,7 @@ function MailLayoutPreview({
export function LayoutSettings() { export function LayoutSettings() {
const t = useTranslations('settings.appearance'); const t = useTranslations('settings.appearance');
const tEmail = useTranslations('settings.email_behavior'); const tEmail = useTranslations('settings.email_behavior');
const { toolbarPosition, showToolbarLabels, hideAccountSwitcher, showRailAccountList, enableUnifiedMailbox, includeGroupInUnified, enableAllMailView, allMailFolderIds, enableCrossUnreadView, enableCrossStarredView, enableCrossAllView, colorfulSidebarIcons, showFolderTotalCount, mailLayout, proInterface, updateSetting } = useSettingsStore(); const { toolbarPosition, showToolbarLabels, hideAccountSwitcher, showRailAccountList, enableUnifiedMailbox, includeGroupInUnified, enableAllMailView, allMailFolderIds, enableCrossUnreadView, enableCrossStarredView, enableCrossAllView, colorfulSidebarIcons, tintListRowsByTag, showFolderTotalCount, mailLayout, proInterface, updateSetting } = useSettingsStore();
const { isSettingLocked, isSettingHidden, isFeatureEnabled } = usePolicyStore(); const { isSettingLocked, isSettingHidden, isFeatureEnabled } = usePolicyStore();
const accounts = useAccountStore(s => s.accounts); const accounts = useAccountStore(s => s.accounts);
const activeAccountId = useAccountStore(s => s.activeAccountId); const activeAccountId = useAccountStore(s => s.activeAccountId);
@@ -217,6 +217,13 @@ export function LayoutSettings() {
/> />
</SettingItem> </SettingItem>
<SettingItem label={t('tint_list_rows.label')} description={t('tint_list_rows.description')}>
<ToggleSwitch
checked={tintListRowsByTag}
onChange={(checked) => updateSetting('tintListRowsByTag', checked)}
/>
</SettingItem>
<SettingItem label={t('show_folder_total_count.label')} description={t('show_folder_total_count.description')}> <SettingItem label={t('show_folder_total_count.label')} description={t('show_folder_total_count.description')}>
<ToggleSwitch <ToggleSwitch
checked={showFolderTotalCount} checked={showFolderTotalCount}
+4
View File
@@ -938,6 +938,10 @@
"label": "Barevné ikony postranního panelu", "label": "Barevné ikony postranního panelu",
"description": "Obarví ikony složek a štítků podle typu (modré Doručené, červený Spam, zelené Odeslané atd.). Vypněte pro jednobarevný postranní panel." "description": "Obarví ikony složek a štítků podle typu (modré Doručené, červený Spam, zelené Odeslané atd.). Vypněte pro jednobarevný postranní panel."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Zobrazit celkový počet zpráv", "label": "Zobrazit celkový počet zpráv",
"description": "Zobrazí celkový počet zpráv vedle složek a štítků spolu s počtem nepřečtených. Vypněte pro zobrazení pouze nepřečtených." "description": "Zobrazí celkový počet zpráv vedle složek a štítků spolu s počtem nepřečtených. Vypněte pro zobrazení pouze nepřečtených."
+4
View File
@@ -941,6 +941,10 @@
"label": "Farverige sidepane-ikoner", "label": "Farverige sidepane-ikoner",
"description": "Farvelæg mappe- og tag-ikoner efter type (blå indbakke, rød spam, grøn sendt osv.). Deaktivér for et monokromt sidepanel." "description": "Farvelæg mappe- og tag-ikoner efter type (blå indbakke, rød spam, grøn sendt osv.). Deaktivér for et monokromt sidepanel."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Vis samlet antal beskeder", "label": "Vis samlet antal beskeder",
"description": "Viser det samlede antal beskeder ud for mapper og tags sammen med antallet af ulæste. Slå fra for kun at vise ulæste." "description": "Viser det samlede antal beskeder ud for mapper og tags sammen med antallet af ulæste. Slå fra for kun at vise ulæste."
+4
View File
@@ -938,6 +938,10 @@
"label": "Farbige Seitenleistensymbole", "label": "Farbige Seitenleistensymbole",
"description": "Ordner- und Tag-Symbole nach Typ einfärben (blauer Posteingang, roter Spam, grüner Gesendet usw.). Für eine monochrome Seitenleiste deaktivieren." "description": "Ordner- und Tag-Symbole nach Typ einfärben (blauer Posteingang, roter Spam, grüner Gesendet usw.). Für eine monochrome Seitenleiste deaktivieren."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Gesamtzahl der Nachrichten anzeigen", "label": "Gesamtzahl der Nachrichten anzeigen",
"description": "Zeigt neben Ordnern und Tags die Gesamtzahl der Nachrichten zusätzlich zur Anzahl ungelesener Nachrichten an. Deaktivieren, um nur ungelesene Nachrichten anzuzeigen." "description": "Zeigt neben Ordnern und Tags die Gesamtzahl der Nachrichten zusätzlich zur Anzahl ungelesener Nachrichten an. Deaktivieren, um nur ungelesene Nachrichten anzuzeigen."
+4
View File
@@ -941,6 +941,10 @@
"label": "Colorful Sidebar Icons", "label": "Colorful Sidebar Icons",
"description": "Tint folder and tag icons by type (blue Inbox, red Junk, green Sent, etc.). Disable for a monochrome sidebar." "description": "Tint folder and tag icons by type (blue Inbox, red Junk, green Sent, etc.). Disable for a monochrome sidebar."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Show Total Message Count", "label": "Show Total Message Count",
"description": "Show the total message count next to folders and tags, alongside the unread count. Disable to show only unread counts." "description": "Show the total message count next to folders and tags, alongside the unread count. Disable to show only unread counts."
+4
View File
@@ -938,6 +938,10 @@
"label": "Iconos de barra lateral a color", "label": "Iconos de barra lateral a color",
"description": "Colorea los iconos de carpetas y etiquetas según su tipo (azul para Bandeja de entrada, rojo para Spam, verde para Enviados, etc.). Desactívalo para una barra lateral monocroma." "description": "Colorea los iconos de carpetas y etiquetas según su tipo (azul para Bandeja de entrada, rojo para Spam, verde para Enviados, etc.). Desactívalo para una barra lateral monocroma."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Mostrar el número total de mensajes", "label": "Mostrar el número total de mensajes",
"description": "Muestra el número total de mensajes junto a las carpetas y etiquetas, además del número de mensajes no leídos. Desactívalo para mostrar solo los no leídos." "description": "Muestra el número total de mensajes junto a las carpetas y etiquetas, además del número de mensajes no leídos. Desactívalo para mostrar solo los no leídos."
+4
View File
@@ -941,6 +941,10 @@
"label": "آیکون‌های رنگی نوار کناری", "label": "آیکون‌های رنگی نوار کناری",
"description": "رنگ‌آمیزی آیکون‌های پوشه و برچسب بر اساس نوع" "description": "رنگ‌آمیزی آیکون‌های پوشه و برچسب بر اساس نوع"
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "نمایش تعداد کل پیام‌ها", "label": "نمایش تعداد کل پیام‌ها",
"description": "تعداد کل پیام‌ها را در کنار پوشه‌ها و برچسب‌ها، همراه با تعداد خوانده‌نشده‌ها نمایش می‌دهد. برای نمایش فقط تعداد خوانده‌نشده‌ها غیرفعال کنید." "description": "تعداد کل پیام‌ها را در کنار پوشه‌ها و برچسب‌ها، همراه با تعداد خوانده‌نشده‌ها نمایش می‌دهد. برای نمایش فقط تعداد خوانده‌نشده‌ها غیرفعال کنید."
+4
View File
@@ -938,6 +938,10 @@
"label": "Icônes colorées dans la barre latérale", "label": "Icônes colorées dans la barre latérale",
"description": "Colore les icônes de dossiers et d'étiquettes par type (Boîte de réception en bleu, Indésirable en rouge, Envoyés en vert, etc.). Désactivez pour une barre latérale monochrome." "description": "Colore les icônes de dossiers et d'étiquettes par type (Boîte de réception en bleu, Indésirable en rouge, Envoyés en vert, etc.). Désactivez pour une barre latérale monochrome."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Afficher le nombre total de messages", "label": "Afficher le nombre total de messages",
"description": "Affiche le nombre total de messages à côté des dossiers et des étiquettes, en plus du nombre de messages non lus. Désactivez pour n'afficher que les messages non lus." "description": "Affiche le nombre total de messages à côté des dossiers et des étiquettes, en plus du nombre de messages non lus. Désactivez pour n'afficher que les messages non lus."
+4
View File
@@ -941,6 +941,10 @@
"label": "Színes oldalsáv ikonok", "label": "Színes oldalsáv ikonok",
"description": "Mappa és címke ikonok színezése típus szerint (kék Beérkező, piros Spam, zöld Elküldött, stb.). Kapcsold ki az egyszínű oldalsávhoz." "description": "Mappa és címke ikonok színezése típus szerint (kék Beérkező, piros Spam, zöld Elküldött, stb.). Kapcsold ki az egyszínű oldalsávhoz."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Összes üzenet számának megjelenítése", "label": "Összes üzenet számának megjelenítése",
"description": "Megjeleníti az üzenetek teljes számát a mappák és címkék mellett, az olvasatlanok számán túl. Kapcsolja ki, ha csak az olvasatlanok számát szeretné látni." "description": "Megjeleníti az üzenetek teljes számát a mappák és címkék mellett, az olvasatlanok számán túl. Kapcsolja ki, ha csak az olvasatlanok számát szeretné látni."
+4
View File
@@ -938,6 +938,10 @@
"label": "Icone colorate nella barra laterale", "label": "Icone colorate nella barra laterale",
"description": "Colora le icone di cartelle ed etichette per tipo (Posta in arrivo blu, Spam rosso, Inviati verde, ecc.). Disattiva per una barra laterale monocromatica." "description": "Colora le icone di cartelle ed etichette per tipo (Posta in arrivo blu, Spam rosso, Inviati verde, ecc.). Disattiva per una barra laterale monocromatica."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Mostra il numero totale di messaggi", "label": "Mostra il numero totale di messaggi",
"description": "Mostra il numero totale di messaggi accanto a cartelle ed etichette, insieme al conteggio dei non letti. Disattiva per mostrare solo i non letti." "description": "Mostra il numero totale di messaggi accanto a cartelle ed etichette, insieme al conteggio dei non letti. Disattiva per mostrare solo i non letti."
+4
View File
@@ -938,6 +938,10 @@
"label": "カラフルなサイドバーアイコン", "label": "カラフルなサイドバーアイコン",
"description": "フォルダーとタグのアイコンを種類別に色分けします(受信トレイは青、迷惑メールは赤、送信済みは緑など)。モノクロのサイドバーにするには無効にしてください。" "description": "フォルダーとタグのアイコンを種類別に色分けします(受信トレイは青、迷惑メールは赤、送信済みは緑など)。モノクロのサイドバーにするには無効にしてください。"
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "メッセージの総数を表示", "label": "メッセージの総数を表示",
"description": "フォルダーやタグの横に、未読数に加えてメッセージの総数を表示します。未読数のみを表示するには無効にします。" "description": "フォルダーやタグの横に、未読数に加えてメッセージの総数を表示します。未読数のみを表示するには無効にします。"
+4
View File
@@ -938,6 +938,10 @@
"label": "컬러풀한 사이드바 아이콘", "label": "컬러풀한 사이드바 아이콘",
"description": "폴더와 태그 아이콘을 유형별로 색상 표시합니다(받은편지함 파란색, 스팸 빨간색, 보낸편지함 녹색 등). 모노크롬 사이드바를 원하면 비활성화하세요." "description": "폴더와 태그 아이콘을 유형별로 색상 표시합니다(받은편지함 파란색, 스팸 빨간색, 보낸편지함 녹색 등). 모노크롬 사이드바를 원하면 비활성화하세요."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "전체 메시지 수 표시", "label": "전체 메시지 수 표시",
"description": "읽지 않은 수와 함께 폴더 및 태그 옆에 전체 메시지 수를 표시합니다. 읽지 않은 수만 표시하려면 비활성화하세요." "description": "읽지 않은 수와 함께 폴더 및 태그 옆에 전체 메시지 수를 표시합니다. 읽지 않은 수만 표시하려면 비활성화하세요."
+4
View File
@@ -938,6 +938,10 @@
"label": "Krāsainas sānjoslas ikonas", "label": "Krāsainas sānjoslas ikonas",
"description": "Iekrāsojiet mapju un birku ikonas pēc to veida (zila Iesūtne, sarkana Mēstules, zaļa Nosūtītie utt.). Atspējojiet, lai iegūtu vienkrāsainu sānjoslu." "description": "Iekrāsojiet mapju un birku ikonas pēc to veida (zila Iesūtne, sarkana Mēstules, zaļa Nosūtītie utt.). Atspējojiet, lai iegūtu vienkrāsainu sānjoslu."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Rādīt kopējo ziņojumu skaitu", "label": "Rādīt kopējo ziņojumu skaitu",
"description": "Rāda kopējo ziņojumu skaitu blakus mapēm un tagiem, kā arī nelasīto ziņojumu skaitu. Atspējojiet, lai rādītu tikai nelasītos." "description": "Rāda kopējo ziņojumu skaitu blakus mapēm un tagiem, kā arī nelasīto ziņojumu skaitu. Atspējojiet, lai rādītu tikai nelasītos."
+4
View File
@@ -938,6 +938,10 @@
"label": "Gekleurde zijbalkpictogrammen", "label": "Gekleurde zijbalkpictogrammen",
"description": "Kleur map- en tagpictogrammen op type (blauw Postvak IN, rood Spam, groen Verzonden, enz.). Schakel uit voor een monochrome zijbalk." "description": "Kleur map- en tagpictogrammen op type (blauw Postvak IN, rood Spam, groen Verzonden, enz.). Schakel uit voor een monochrome zijbalk."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Totaal aantal berichten tonen", "label": "Totaal aantal berichten tonen",
"description": "Toont het totale aantal berichten naast mappen en labels, naast het aantal ongelezen berichten. Schakel uit om alleen ongelezen aantallen te tonen." "description": "Toont het totale aantal berichten naast mappen en labels, naast het aantal ongelezen berichten. Schakel uit om alleen ongelezen aantallen te tonen."
+4
View File
@@ -938,6 +938,10 @@
"label": "Kolorowe ikony paska bocznego", "label": "Kolorowe ikony paska bocznego",
"description": "Koloruj ikony folderów i tagów według typu (niebieska Skrzynka odbiorcza, czerwona Spam, zielona Wysłane itp.). Wyłącz, aby uzyskać monochromatyczny pasek boczny." "description": "Koloruj ikony folderów i tagów według typu (niebieska Skrzynka odbiorcza, czerwona Spam, zielona Wysłane itp.). Wyłącz, aby uzyskać monochromatyczny pasek boczny."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Pokaż łączną liczbę wiadomości", "label": "Pokaż łączną liczbę wiadomości",
"description": "Pokazuje łączną liczbę wiadomości obok folderów i etykiet, obok liczby nieprzeczytanych. Wyłącz, aby pokazywać tylko nieprzeczytane." "description": "Pokazuje łączną liczbę wiadomości obok folderów i etykiet, obok liczby nieprzeczytanych. Wyłącz, aby pokazywać tylko nieprzeczytane."
+4
View File
@@ -938,6 +938,10 @@
"label": "Ícones coloridos na barra lateral", "label": "Ícones coloridos na barra lateral",
"description": "Colorir ícones de pastas e etiquetas por tipo (Caixa de entrada azul, Spam vermelho, Enviados verde, etc.). Desative para uma barra lateral monocromática." "description": "Colorir ícones de pastas e etiquetas por tipo (Caixa de entrada azul, Spam vermelho, Enviados verde, etc.). Desative para uma barra lateral monocromática."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Mostrar contagem total de mensagens", "label": "Mostrar contagem total de mensagens",
"description": "Mostra a contagem total de mensagens ao lado de pastas e etiquetas, além da contagem de não lidas. Desative para mostrar apenas as não lidas." "description": "Mostra a contagem total de mensagens ao lado de pastas e etiquetas, além da contagem de não lidas. Desative para mostrar apenas as não lidas."
+4
View File
@@ -941,6 +941,10 @@
"label": "Pictograme colorate în bara laterală", "label": "Pictograme colorate în bara laterală",
"description": "Colorați pictogramele folderelor și etichetelor în funcție de tip (albastru pentru „Inbox”, roșu pentru „Junk”, verde pentru „Sent” etc.). Dezactivați această opțiune pentru o bară laterală monocromă." "description": "Colorați pictogramele folderelor și etichetelor în funcție de tip (albastru pentru „Inbox”, roșu pentru „Junk”, verde pentru „Sent” etc.). Dezactivați această opțiune pentru o bară laterală monocromă."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Afișează numărul total de mesaje", "label": "Afișează numărul total de mesaje",
"description": "Afișează numărul total de mesaje lângă foldere și etichete, pe lângă numărul celor necitite. Dezactivează pentru a afișa doar mesajele necitite." "description": "Afișează numărul total de mesaje lângă foldere și etichete, pe lângă numărul celor necitite. Dezactivează pentru a afișa doar mesajele necitite."
+4
View File
@@ -938,6 +938,10 @@
"label": "Цветные значки боковой панели", "label": "Цветные значки боковой панели",
"description": "Окрашивать значки папок и тегов по типу (синий «Входящие», красный «Спам», зелёный «Отправленные» и т. д.). Отключите для монохромной боковой панели." "description": "Окрашивать значки папок и тегов по типу (синий «Входящие», красный «Спам», зелёный «Отправленные» и т. д.). Отключите для монохромной боковой панели."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Показывать общее количество сообщений", "label": "Показывать общее количество сообщений",
"description": "Показывает общее количество сообщений рядом с папками и метками, наряду с количеством непрочитанных. Отключите, чтобы показывать только непрочитанные." "description": "Показывает общее количество сообщений рядом с папками и метками, наряду с количеством непрочитанных. Отключите, чтобы показывать только непрочитанные."
+4
View File
@@ -941,6 +941,10 @@
"label": "Farebné ikony postranného panela", "label": "Farebné ikony postranného panela",
"description": "Ofarbí ikony priečinkov a štítkov podľa typu. Vypnite pre jednofarebný postranný panel." "description": "Ofarbí ikony priečinkov a štítkov podľa typu. Vypnite pre jednofarebný postranný panel."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Zobraziť celkový počet správ", "label": "Zobraziť celkový počet správ",
"description": "Zobraziť celkový počet správ vedľa priečinkov a štítkov spolu s počtom neprečítaných." "description": "Zobraziť celkový počet správ vedľa priečinkov a štítkov spolu s počtom neprečítaných."
+4
View File
@@ -938,6 +938,10 @@
"label": "Renkli Kenar Çubuğu Simgeleri", "label": "Renkli Kenar Çubuğu Simgeleri",
"description": "Klasör ve etiket simgelerini türe göre renklendir (mavi Gelen Kutusu, kırmızı İstem Dışı vb.). Tek renkli kenar çubuğu için kapatın." "description": "Klasör ve etiket simgelerini türe göre renklendir (mavi Gelen Kutusu, kırmızı İstem Dışı vb.). Tek renkli kenar çubuğu için kapatın."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Toplam mesaj sayısını göster", "label": "Toplam mesaj sayısını göster",
"description": "Klasörlerin ve etiketlerin yanında, okunmamış sayısının yanı sıra toplam mesaj sayısını gösterir. Yalnızca okunmamışları göstermek için devre dışı bırakın." "description": "Klasörlerin ve etiketlerin yanında, okunmamış sayısının yanı sıra toplam mesaj sayısını gösterir. Yalnızca okunmamışları göstermek için devre dışı bırakın."
+4
View File
@@ -938,6 +938,10 @@
"label": "Кольорові значки бічної панелі", "label": "Кольорові значки бічної панелі",
"description": "Забарвлюйте значки папок і тегів за типом (синя «Вхідні», червоний «Спам», зелена «Надіслані» тощо). Вимкніть для монохромної бічної панелі." "description": "Забарвлюйте значки папок і тегів за типом (синя «Вхідні», червоний «Спам», зелена «Надіслані» тощо). Вимкніть для монохромної бічної панелі."
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "Показувати загальну кількість повідомлень", "label": "Показувати загальну кількість повідомлень",
"description": "Показує загальну кількість повідомлень поруч із теками та мітками, разом із кількістю непрочитаних. Вимкніть, щоб показувати лише непрочитані." "description": "Показує загальну кількість повідомлень поруч із теками та мітками, разом із кількістю непрочитаних. Вимкніть, щоб показувати лише непрочитані."
+4
View File
@@ -938,6 +938,10 @@
"label": "彩色侧边栏图标", "label": "彩色侧边栏图标",
"description": "按类型为文件夹和标签图标着色(蓝色收件箱、红色垃圾邮件、绿色已发送等)。禁用以获得单色侧边栏。" "description": "按类型为文件夹和标签图标着色(蓝色收件箱、红色垃圾邮件、绿色已发送等)。禁用以获得单色侧边栏。"
}, },
"tint_list_rows": {
"label": "Tint List Rows by Tag Color",
"description": "Shade each message row with its first tag color. Disable to keep rows plain; tag dots and chips still show the color."
},
"show_folder_total_count": { "show_folder_total_count": {
"label": "显示邮件总数", "label": "显示邮件总数",
"description": "在文件夹和标签旁边显示邮件总数,以及未读数量。停用后仅显示未读数量。" "description": "在文件夹和标签旁边显示邮件总数,以及未读数量。停用后仅显示未读数量。"
+3
View File
@@ -261,6 +261,7 @@ interface SettingsState {
// Sidebar // Sidebar
colorfulSidebarIcons: boolean; // Tint folder icons by role (inbox blue, junk red, etc.) colorfulSidebarIcons: boolean; // Tint folder icons by role (inbox blue, junk red, etc.)
tintListRowsByTag: boolean; // Tint mail-list rows by the first tag color
showFolderTotalCount: boolean; // Show total message count next to folders/tags (alongside unread) showFolderTotalCount: boolean; // Show total message count next to folders/tags (alongside unread)
// Folders // Folders
@@ -458,6 +459,7 @@ const DEFAULT_SETTINGS = {
// Sidebar // Sidebar
colorfulSidebarIcons: true, colorfulSidebarIcons: true,
tintListRowsByTag: true,
showFolderTotalCount: true, showFolderTotalCount: true,
// Folders // Folders
@@ -634,6 +636,7 @@ export const useSettingsStore = create<SettingsState>()(
senderFavicons: state.senderFavicons, senderFavicons: state.senderFavicons,
showAvatarsInJunk: state.showAvatarsInJunk, showAvatarsInJunk: state.showAvatarsInJunk,
colorfulSidebarIcons: state.colorfulSidebarIcons, colorfulSidebarIcons: state.colorfulSidebarIcons,
tintListRowsByTag: state.tintListRowsByTag,
showFolderTotalCount: state.showFolderTotalCount, showFolderTotalCount: state.showFolderTotalCount,
folderIcons: state.folderIcons, folderIcons: state.folderIcons,
emailKeywords: state.emailKeywords, emailKeywords: state.emailKeywords,