@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
51 lines (44 loc) • 1.32 kB
text/typescript
import { IGenericSelect } from '../../../../generic/types/select';
import { ISlackSelectConversations } from '../../../types';
import { transformConfirm } from '../confirm';
import { transformTextObject } from '../helpers/transform-text-object';
export const transformConversationsSelect = ({
type,
placeholder,
action_id,
initial_conversation,
default_to_current_conversation,
confirm,
response_url_enabled,
filter
}: ISlackSelectConversations): IGenericSelect => {
const res: IGenericSelect = {
type: 'select',
props: {
value: initial_conversation,
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 (default_to_current_conversation) {
res.props.slack.default_to_current_conversation = default_to_current_conversation;
}
if (confirm) {
res.props.slack.confirm = transformConfirm(confirm);
}
if (response_url_enabled) {
res.props.slack.response_url_enabled = response_url_enabled;
}
if (filter) {
res.props.slack.filter = filter;
}
return res;
};