@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
51 lines (39 loc) • 1.18 kB
text/typescript
import { IGenericButton, IGenericCard, IGenericHeader } from "../../../../generic/types";
import { IRWCAnswerComponent } from "../../../types";
import { transformText, transformImage } from '../index';
export const transformCard = (msg: IRWCAnswerComponent): IGenericCard => {
const result: IGenericCard = {
type: 'card',
props: {},
children: []
};
const data = msg.vBind ? msg.vBind : msg;
if (data?.image?.length) {
data.image.forEach(img => {
result.children.push(transformImage(img));
});
}
if (data?.label) {
// result.children.push(transformText(`**${data.label}**`));
const header: IGenericHeader = {
type: 'header',
children: [transformText(data.label)]
};
result.children.push(header);
}
if (data?.description || data?.text) {
const description = data.description || data.text;
result.children.push(transformText(description));
}
if (data?.button) {
const button: IGenericButton = {
type: 'button',
props: {
label: data?.button,
value: data?.value || data?.sendValue
}
};
result.children.push(button);
}
return result;
};