import { getUserSetting } from "@agent-native/core/settings"; import { normalizeSignature } from "../../shared/signature.js"; import type { UserSettings } from "../../shared/types.js"; export const DEFAULT_SETTINGS: UserSettings = { name: "", email: "", signature: "", writingStyle: "", theme: "dark", density: "comfortable", previewPane: "right", sendAndArchive: false, undoSendDelay: 5, tracking: { opens: false, clicks: false }, }; export async function readSettings(email: string): Promise { const data = await getUserSetting(email, "mail-settings"); if (data) { return { ...DEFAULT_SETTINGS, ...(data as Partial), email: (data as Partial).email || email, signature: normalizeSignature((data as Partial).signature), } as UserSettings; } return { ...DEFAULT_SETTINGS, email }; } export function mergeSettings( current: UserSettings, patch: Partial, ): UserSettings { return { ...current, ...patch, ...(patch.signature !== undefined ? { signature: normalizeSignature(patch.signature) } : {}), }; }