Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 132x 2x 2x 2x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 2x 2x 2x 2x 2x 2x 2x 2x 2x 22x 22x 22x 22x 22x 22x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x 132x | import { html } from 'lit-html';
import { ActionConfig, ACTION_GROUPS, FormData, FlowTypes } from '../types';
import { Node, SendEmail } from '../../store/flow-definition';
import {
renderStringList,
renderClamped,
renderHighlightedText,
validateWith
} from '../utils';
import { Icon } from '../../Icons';
export const send_email: ActionConfig = {
name: 'Send Email',
group: ACTION_GROUPS.broadcast,
flowTypes: [FlowTypes.VOICE, FlowTypes.MESSAGE, FlowTypes.BACKGROUND],
render: (_node: Node, action: SendEmail) => {
return html`<div>
<div>${renderStringList(action.addresses, Icon.email, true)}</div>
<div style="margin-top: 0.5em">
${renderClamped(
renderHighlightedText(action.subject, true),
action.subject
)}
</div>
</div>`;
},
form: {
addresses: {
type: 'select',
label: 'Recipients',
multi: true,
searchable: true,
placeholder: 'Enter email addresses...',
emails: true,
expressions: 'session'
},
subject: {
type: 'text',
label: 'Subject',
required: true,
evaluated: true,
placeholder: 'Enter email subject',
maxLength: 1000
},
body: {
type: 'textarea',
required: true,
evaluated: true,
maxLength: 10000,
minHeight: 175
}
},
fromFormData: (formData: FormData): SendEmail => {
return {
uuid: formData.uuid,
type: 'send_email',
addresses: formData.addresses.map(
(addr: { name: string; value: string }) => addr.value
),
subject: formData.subject,
body: formData.body
};
},
localizable: ['subject', 'body'],
validate: validateWith((formData, errors) => {
if (!formData.addresses || formData.addresses.length === 0) {
errors.addresses = 'At least one recipient email address is required';
}
})
};
|