feat: add option to disable conversation threading #97

This commit is contained in:
Linus Rath
2026-03-26 13:04:34 +01:00
parent e48672cf77
commit 47918aab1b
13 changed files with 61 additions and 5 deletions
+4 -2
View File
@@ -89,10 +89,12 @@ export function EmailList({
searchQuery,
} = useEmailStore();
const disableThreading = useSettingsStore((state) => state.disableThreading);
const threadGroups = useMemo(() => {
const groups = groupEmailsByThread(emails);
const groups = groupEmailsByThread(emails, disableThreading);
return sortThreadGroups(groups);
}, [emails]);
}, [emails, disableThreading]);
const { contextMenu, openContextMenu, closeContextMenu, menuRef } = useContextMenu<Email>();
const { dialogProps: confirmDialogProps, confirm: confirmDialog } = useConfirmDialog();
+9
View File
@@ -39,6 +39,7 @@ export function EmailSettings() {
deleteAction,
permanentlyDeleteJunk,
showPreview,
disableThreading,
emailsPerPage,
externalContentPolicy,
mailAttachmentAction,
@@ -210,6 +211,14 @@ export function EmailSettings() {
</SettingItem>
)}
{/* Disable Thread Grouping */}
<SettingItem label={t('disable_threading.label')} description={t('disable_threading.description')}>
<ToggleSwitch
checked={disableThreading}
onChange={(checked) => updateSetting('disableThreading', checked)}
/>
</SettingItem>
{/* Quick Hover Actions */}
{isFeatureEnabled('hoverActionsConfigEnabled') && (
<div className="py-3 border-b border-border space-y-3">