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;
};