feat: mail UI improvements - folder mapping, display name, resize perf, list header

- Add configurable folder mapping (sent/drafts/spam/trash) per account
- Migration 0005_folder_mapping.sql with 4 new columns on mail_accounts
- Backend: send_mail uses account.sent_folder_imap_name if set
- Backend: _build_folder_hierarchy respects folder_mapping for is_standard
- Frontend: MailSettings shows folder mapping editor per account
- Frontend: MailSettings allows editing display_name for existing accounts
- Frontend: MailFolderTree shows display_name || email, removes MailIcon
- Frontend: ResizablePanel isDragging state with contain:strict + pointer-events:none
- Frontend: MailList merges select-all and sort controls into one line
This commit is contained in:
Agent Zero
2026-07-17 23:17:52 +02:00
parent 04c419402b
commit db433e81f1
9 changed files with 295 additions and 71 deletions
+12
View File
@@ -19,6 +19,10 @@ export interface MailAccount {
smtp_port: number;
is_shared: boolean;
is_active: boolean;
sent_folder_imap_name?: string | null;
drafts_folder_imap_name?: string | null;
spam_folder_imap_name?: string | null;
trash_folder_imap_name?: string | null;
created_at?: string | null;
updated_at?: string | null;
}
@@ -195,6 +199,10 @@ export interface CreateAccountPayload {
username?: string;
password: string;
is_shared?: boolean;
sent_folder_imap_name?: string | null;
drafts_folder_imap_name?: string | null;
spam_folder_imap_name?: string | null;
trash_folder_imap_name?: string | null;
}
export interface UpdateAccountPayload {
@@ -205,6 +213,10 @@ export interface UpdateAccountPayload {
smtp_port?: number;
password?: string;
is_active?: boolean;
sent_folder_imap_name?: string | null;
drafts_folder_imap_name?: string | null;
spam_folder_imap_name?: string | null;
trash_folder_imap_name?: string | null;
}
export interface CreateFolderPayload {