import { Badge } from "../../../components/ui/badge" import { Button } from "../../../components/ui/button" import { Input } from "../../../components/ui/input" import { Textarea } from "../../../components/ui/textarea" import type { EmailTemplate } from "../../../types/emailTemplate.types" export type EmailTemplateDraft = { subject: string body_text: string body_html: string } export function emailTemplateDraftFromTemplate( template: EmailTemplate, ): EmailTemplateDraft { return { subject: template.subject, body_text: template.body_text, body_html: template.body_html, } } export function draftsEqual(a: EmailTemplateDraft, b: EmailTemplateDraft) { return ( a.subject === b.subject && a.body_text === b.body_text && a.body_html === b.body_html ) } type EmailTemplateEditFormProps = { template: EmailTemplate draft: EmailTemplateDraft saving: boolean onChange: (patch: Partial) => void onSave: () => void onReset: () => void } export function EmailTemplateEditForm({ template, draft, saving, onChange, onSave, onReset, }: EmailTemplateEditFormProps) { const isDirty = !draftsEqual(draft, emailTemplateDraftFromTemplate(template)) return (

Subject

onChange({ subject: e.target.value })} placeholder="Email subject line" className="font-mono text-sm" disabled={saving} />

Plain text body