UNPKG

@onereach/channel-transformer

Version:

Convert data model between different channels (Slack, Microsoft Teams, Generic...)

43 lines (36 loc) 1.32 kB
import { IGenericCheckbox } from '../../../generic/types'; import { ISlackCheckboxes, ISlackInput, ISlackTextObject } from '../../types'; import { convertGenericOptions } from '../helpers/convert-options'; import { transformTextObject } from './text'; import { transformConfirm } from './confirm'; import { getElementWithSectionWrapper } from '../helpers/section-wrapper'; export const transformCheckbox = ({ props }: IGenericCheckbox): ISlackCheckboxes|ISlackInput => { const element: ISlackCheckboxes = { type: 'checkboxes', action_id: props.slack?.action_id || props.variableName || props.web?.variableName, options: convertGenericOptions(props.options) }; if (props.slack?.confirm) { element.confirm = transformConfirm(props.slack?.confirm); } if (props.value) { const selected = props.options.filter(op => props.value[op.name] === true); const initial_options = convertGenericOptions(selected); if (initial_options?.length) { element.initial_options = initial_options; } } if (props.label) { const label: ISlackTextObject = transformTextObject({ value: props.label, type: 'plain' }); const dispatch_action = props.web?.interactive; return getElementWithSectionWrapper(element, label, dispatch_action); } return element; };