@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
32 lines (28 loc) • 952 B
text/typescript
import { IGenericFields } from '../../../../generic/types';
import { IRWCMessage } from '../../../types';
import { getMethods } from '../methods';
import { RWCv5Message } from '../../../classes/v5';
const isString = target => typeof target === 'string';
export const transformFields = ({ props, children }: IGenericFields): IRWCMessage => {
const colNum = props.column || 2;
let message = '<table><tbody>';
for (let i = 0; i < children.length; i = i + colNum) {
let row = `<tr>`;
for (let j = 0; j < colNum; j++) {
const item = children[i+j];
if (item) {
const field = getMethods(item.type)(item);
const text = isString(field) ?
field :
field?.message || field?.vBind?.text || '';
row += `<td>${text}</td>`;
} else {
row += `<td></td>`;
}
}
row += `</tr>`;
message += row;
}
message += '</tbody></table>';
return new RWCv5Message(message);
};