From acc90eb455c04ecbee022546e26c8f2a435cf733 Mon Sep 17 00:00:00 2001
From: Linus Rath <139418639+rathlinus@users.noreply.github.com>
Date: Fri, 22 May 2026 19:08:02 +0200
Subject: [PATCH] feat: add "Move to Trash and mark as read" delete action #323
---
app/(main)/admin/_tabs/policy.tsx | 2 +-
components/settings/reading-settings.tsx | 3 ++-
lib/demo/demo-client.ts | 17 ++++++++++----
lib/jmap/client-interface.ts | 6 ++---
lib/jmap/client.ts | 30 +++++++++++++-----------
locales/en/common.json | 1 +
stores/email-store.ts | 29 ++++++++++++++++-------
stores/settings-store.ts | 2 +-
8 files changed, 56 insertions(+), 34 deletions(-)
diff --git a/app/(main)/admin/_tabs/policy.tsx b/app/(main)/admin/_tabs/policy.tsx
index 1af87b9e..78755819 100644
--- a/app/(main)/admin/_tabs/policy.tsx
+++ b/app/(main)/admin/_tabs/policy.tsx
@@ -28,7 +28,7 @@ const RESTRICTABLE_SETTINGS = [
{ key: 'density', label: 'Density', category: 'Appearance', type: 'enum', allowedValues: ['compact', 'regular', 'spacious'] },
{ key: 'animationsEnabled', label: 'Animations', category: 'Appearance', type: 'boolean' },
{ key: 'markAsReadDelay', label: 'Mark as Read Delay', category: 'Email', type: 'number' },
- { key: 'deleteAction', label: 'Delete Action', category: 'Email', type: 'enum', allowedValues: ['trash', 'permanent'] },
+ { key: 'deleteAction', label: 'Delete Action', category: 'Email', type: 'enum', allowedValues: ['trash', 'trash-and-read', 'permanent'] },
{ key: 'showPreview', label: 'Show Preview', category: 'Email', type: 'boolean' },
{ key: 'mailLayout', label: 'Mail Layout', category: 'Email', type: 'enum', allowedValues: ['split', 'focus', 'horizontal'] },
{ key: 'emailsPerPage', label: 'Emails Per Page', category: 'Email', type: 'number' },
diff --git a/components/settings/reading-settings.tsx b/components/settings/reading-settings.tsx
index 96ae55dd..3aed858d 100644
--- a/components/settings/reading-settings.tsx
+++ b/components/settings/reading-settings.tsx
@@ -120,9 +120,10 @@ export function ReadingSettings() {