diff --git a/app/routes/settings.tsx b/app/routes/settings.tsx index a4634cda..5274bb0a 100644 --- a/app/routes/settings.tsx +++ b/app/routes/settings.tsx @@ -4,6 +4,7 @@ import { Badge, Button, Input, Loader, useKumoToastManager } from "@cloudflare/kumo"; import { RobotIcon, ArrowCounterClockwiseIcon } from "@phosphor-icons/react"; +import DOMPurify from "dompurify"; import { useEffect, useState } from "react"; import { useParams } from "react-router"; import { useMailbox, useUpdateMailbox } from "~/queries/mailboxes"; @@ -20,12 +21,16 @@ export default function SettingsRoute() { const [displayName, setDisplayName] = useState(""); const [agentPrompt, setAgentPrompt] = useState(""); + const [signatureEnabled, setSignatureEnabled] = useState(false); + const [signatureHtml, setSignatureHtml] = useState(""); const [isSaving, setIsSaving] = useState(false); useEffect(() => { if (mailbox) { setDisplayName(mailbox.settings?.fromName || mailbox.name || ""); setAgentPrompt(mailbox.settings?.agentSystemPrompt || ""); + setSignatureEnabled(mailbox.settings?.signature?.enabled || false); + setSignatureHtml(mailbox.settings?.signature?.html || ""); } }, [mailbox]); @@ -36,6 +41,12 @@ export default function SettingsRoute() { ...mailbox.settings, fromName: displayName, agentSystemPrompt: agentPrompt.trim() || undefined, + signature: { + ...mailbox.settings?.signature, + enabled: signatureEnabled, + text: mailbox.settings?.signature?.text || "", + html: signatureHtml.trim() || undefined, + }, }; try { await updateMailboxMutation.mutateAsync({ mailboxId, settings }); @@ -63,6 +74,7 @@ export default function SettingsRoute() { } const isCustomPrompt = agentPrompt.trim().length > 0; + const signaturePreviewHtml = DOMPurify.sanitize(signatureHtml); return (