@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
38 lines (31 loc) • 1.05 kB
text/typescript
import { IGenericInput } from "../../../../generic/types";
import { IRWCAnswerComponent } from "../../../types";
export const transformInput = (msg: IRWCAnswerComponent): IGenericInput => {
const input: IGenericInput = {
type: 'input',
props: {
rwc: {
suggestions: msg.vBind?.suggestions || [],
validation: msg.vBind?.validation || {},
sendInputTypingEvent: msg.vBind?.sendInputTypingEvent || false
}
}
};
if (input.props.rwc.validation?.rules) {
const { rules } = input.props.rwc.validation;
const characterLimitRule = rules.find(rule => rule.name === "characterLimits");
if (characterLimitRule) {
[input.props.minLength, input.props.maxLength] = [characterLimitRule.min, characterLimitRule.max];
}
}
if (msg.vBind.predefinedText) {
input.props.value = msg.vBind.predefinedText;
}
if (msg.vBind?.placeholder) {
input.props.placeholder = msg.vBind.placeholder;
}
if (msg.vBind?.type) {
input.props.rwc.type = msg.vBind.type;
}
return input;
};