@canner/antd-array-slider
Version:
array-slider
44 lines (39 loc) • 984 B
JavaScript
// @flow
import React, { Component } from "react";
import { Slider } from "antd";
// types
import type {ArrayDefaultProps} from 'types/ArrayDefaultProps';
type Props = ArrayDefaultProps<number> & {
uiParams: {
min: number,
max: number,
step: number,
unit: string
}
};
export default class RangeSlider extends Component<Props> {
static defaultProps = {
value: [0, 100]
}
onChange = (val: Array<number>) => {
const { refId } = this.props;
this.props.onChange(refId, "update", val);
}
render() {
const { value, uiParams } = this.props;
let tipFormatter =
uiParams && uiParams.unit ? val => `${val} ${uiParams.unit}` : val => val;
return (
<Slider
range
min={uiParams && uiParams.min}
max={uiParams && uiParams.max}
step={uiParams && uiParams.step}
tipFormatter={tipFormatter}
{...this.props}
onChange={this.onChange}
value={value}
/>
);
}
}