@coocoon/react-awesome-query-builder
Version:
User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder
56 lines (50 loc) • 1.39 kB
JSX
import React, { PureComponent } from "react";
import PropTypes from "prop-types";
import { InputNumber, Col } from "antd";
export default class NumberWidget extends PureComponent {
static propTypes = {
setValue: PropTypes.func.isRequired,
placeholder: PropTypes.string,
config: PropTypes.object.isRequired,
field: PropTypes.string.isRequired,
value: PropTypes.number,
customProps: PropTypes.object,
fieldDefinition: PropTypes.object,
readonly: PropTypes.bool,
// from fieldSettings:
min: PropTypes.number,
max: PropTypes.number,
step: PropTypes.number,
};
handleChange = (val) => {
if (val === "" || val === null)
val = undefined;
this.props.setValue(val);
};
static defaultProps = {
min: undefined,
max: undefined,
step: undefined,
};
render() {
const {config, placeholder, customProps, value, min, max, step, readonly} = this.props;
const {renderSize} = config.settings;
const aValue = value != undefined ? value : undefined;
return (
<Col>
<InputNumber
disabled={readonly}
key="widget-number"
size={renderSize}
value={aValue}
min={min}
max={max}
step={step}
placeholder={placeholder}
onChange={this.handleChange}
{...customProps}
/>
</Col>
);
}
}