UNPKG

@onereach/channel-transformer

Version:

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

59 lines (51 loc) 1.51 kB
import { IGenericSelect } from '../../../../generic/types/select'; import { ISlackMultiStaticSelect } from '../../../types'; import { convertOptions, convertGroupOptions, convertSingleOption, convertGroupOption } from '../helpers/convert-options'; import { transformConfirm } from '../confirm'; import { transformTextObject } from '../helpers/transform-text-object'; export const transformMultiStaticSelect = ({ type, placeholder, action_id, options, option_groups, initial_options, confirm, max_selected_items }: ISlackMultiStaticSelect): IGenericSelect => { const res: IGenericSelect = { type: 'select', props: { value: convertSingleOption(initial_options), placeholder: transformTextObject(placeholder).value, variableName: action_id, slack: { type } } }; if (placeholder) { res.props.slack.placeholder_type = placeholder.type; res.props.slack.placeholder_emoji = placeholder.emoji; res.props.slack.placeholder_verbatim = placeholder.verbatim; } if (options) { res.props.options = convertOptions(options); } if (option_groups) { res.props.slack.option_groups = convertGroupOptions(option_groups); if (initial_options) { res.props.slack.initial_options = convertGroupOption(initial_options); } } if (confirm) { res.props.slack.confirm = transformConfirm(confirm); } if (max_selected_items) { res.props.slack.max_selected_items = max_selected_items; } return res; };