@onereach/channel-transformer
Version:
Convert data model between different channels (Slack, Microsoft Teams, Generic...)
35 lines (30 loc) • 889 B
text/typescript
import { IGenericRange } from "../../../../generic/types";
import { IRWCAnswerComponent } from "../../../types";
const toNumber = (str: string): number => {
const int = parseInt(str);
const float = parseFloat(str);
if (isNaN(float)) return undefined;
if (int === float) {
return int;
}
return float;
};
export const transformSlider = (msg: IRWCAnswerComponent): IGenericRange => {
const min: number = toNumber(msg.vBind?.min || 0);
const max: number = toNumber(msg.vBind?.max || 100);
const step: number = toNumber(msg.vBind?.step || 1);
const value: [number, number] = [min, max];
const result: IGenericRange = {
type: 'range',
props: {
value,
min,
max,
step,
unit: msg.vBind?.unit,
unitPosition: msg.vBind?.unitPosition
}
};
result.props.value = [result.props.min, result.props.max];
return result;
};