import {Input, Label} from '@plunk/ui'; import {EmailDomainInput} from './EmailDomainInput'; interface EmailSettingsProps { from: string; fromName: string; replyTo: string; onFromChange: (value: string) => void; onFromNameChange: (value: string) => void; onReplyToChange: (value: string) => void; fromPlaceholder?: string; fromNamePlaceholder?: string; replyToPlaceholder?: string; showFromNameHelpText?: boolean; layout?: 'vertical' | 'grid'; } /** * Reusable email settings component for from, fromName, and replyTo fields * Used in campaign and template forms */ export function EmailSettings({ from, fromName, replyTo, onFromChange, onFromNameChange, onReplyToChange, fromPlaceholder = 'hello', fromNamePlaceholder = 'Your Company', replyToPlaceholder, showFromNameHelpText = false, layout = 'grid', }: EmailSettingsProps) { // Use from email's local part as the reply-to placeholder if not provided // Extract local part (before @) since the domain is shown in a dropdown // Fall back to fromPlaceholder when from is empty (since reply-to defaults to from) const fromLocalPart = from.includes('@') ? from.split('@')[0] : from; const effectiveReplyToPlaceholder = replyToPlaceholder || fromLocalPart || fromPlaceholder; const GridWrapper = layout === 'grid' ? 'div' : 'div'; const gridClassName = layout === 'grid' ? 'grid gap-4 md:grid-cols-2' : 'space-y-4'; return (
onFromNameChange(e.target.value)} placeholder={fromNamePlaceholder} /> {showFromNameHelpText && (

The sender name that appears in the recipient's inbox. Defaults to your project name if not set.

)}
); }