import { IGenericCheckbox } from '../../../generic/types';
import { ISlackCheckboxes } from '../../types';
import { convertOptions } from './helpers/convert-options';
import { transformConfirm } from './confirm';

export const transformCheckboxes = ({ 
  action_id,
  options,
  initial_options,
  confirm
}: ISlackCheckboxes): IGenericCheckbox => {
  const res: IGenericCheckbox = {
    type: 'checkbox',
    props: {
      variableName: action_id,
      multiple: true,
      options: convertOptions(options),
      slack: {}
    }
  };

  if (initial_options) {
    res.props.value = {};
    res.props.options?.forEach(op => {
      res.props.value[op.name] = initial_options.findIndex(item => item.value === op.name) > -1;
    });
  }

  if (confirm) {
    res.props.slack.confirm = transformConfirm(confirm);
  }

  res.props.web = {
    vertical: true,
    ...res.props.web
  };

  return res;
};