@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
42 lines (36 loc) • 1.19 kB
text/typescript
import { IGenericTimePicker } from '../../../generic/types';
import { ISlackTimePicker } from '../../types';
import { transformTextObject } from './helpers/transform-text-object';
import { transformConfirm } from './confirm';
export const transformTimePicker = ({
action_id,
placeholder,
initial_time,
confirm
}: ISlackTimePicker): IGenericTimePicker => {
const res: IGenericTimePicker = {
type: 'timePicker',
props: {
variableName: action_id,
slack: {}
}
};
if (placeholder) {
res.props.placeholder = transformTextObject(placeholder).value,
res.props.slack.placeholder_type = placeholder.type;
res.props.slack.placeholder_emoji = placeholder.emoji;
res.props.slack.placeholder_verbatim = placeholder.verbatim;
}
if (initial_time) {
const [HH, mm] = initial_time.split(':').map(v => parseInt(v));
const mod = HH >= 12 ? 'pm' : 'am';
const hour = (HH === 0) ? 12 : ((HH > 12) ? HH - 12 : HH);
const hh = hour >= 10 ? hour : `0${hour}`;
res.props.value = `${hh}:${mm} ${mod}`;
res.props.timeformat = 12;
}
if (confirm) {
res.props.slack.confirm = transformConfirm(confirm);
}
return res;
};