import { IGenericSection } from '../../../../generic/types';
import { IRWCMessage } from '../../../types';
import { getMethods } from '../methods';
import { RWCv5Message } from '../../../classes/v5';

export const transformContext = ({ children }: IGenericSection, isPlain:boolean): IRWCMessage => {
  const words = children.map(item => {
    const child = getMethods(item.type)(item, true);
    return {
      type: item.type,
      message: child?.message || child?.vBind?.text || ''
    };
  });

  let message;

  if (isPlain) {
    message = words.map(w => w.message).join(" ");
  } else {
    message = words.map(w => {
      if (w.type === 'text') {
        return `<span style="margin-right: 5px;">${w.message}</span>`;
      }
      if (w.type === 'image') {
        return `<img src="${w.message}" style="height: 20px; margin-right: 5px;" />`;
      }
      return w.message;
    }).join("");
  }

  return new RWCv5Message(message);
};