Sending to
{cohortName || `${recipients.length} resident${recipients.length === 1 ? '' : 's'}`}
{recipients.length} resident{recipients.length === 1 ? '' : 's'} · only those who consented
{recipients.slice(0, 14).map(r => (
{r.first} {r.last[0]}.
))}
{recipients.length > 14 && +{recipients.length - 14} more}
Channel
{[
{ v: 'text', l: 'Text message', s: 'Best for short updates', ic: 'msg', count: reachable.text.length },
{ v: 'email', l: 'Email', s: 'Longer, formatted', ic: 'mail', count: reachable.email.length },
{ v: 'call', l: 'Phone call list', s: 'For coordinator follow-up', ic: 'phone', count: reachable.call.length },
{ v: 'mail', l: 'Print mailers', s: 'Postal — no internet needed', ic: 'home', count: reachable.mail.length },
].map(c => (
setChannel(c.v)}>
{c.l}
{c.s}
{c.count}/{recipients.length}
))}
Templates
{EQ_CAMPAIGN_TEMPLATES.map(t => (
))}
{template ? 'Compose from template' : 'New message'}
HIPAA-compliant · audit logged
{(channel === 'email' || channel === 'mail') && (
setSubject(e.target.value)}
placeholder="Free vaccine clinic at {{town}} Town Hall" />
)}
{body && (
Preview · for {previewWith.first} {previewWith.last || ''}
{(channel === 'email' || channel === 'mail') && subject && (
{renderPreview(subject)}
)}
{renderPreview(body)}
)}
{scheduled && (
setScheduleDate(e.target.value)} style={{ width: 250 }} />
)}
Will reach {reachable[channel]?.length} via {channel === 'call' ? 'phone' : channel}