@aappddeevv/dynamics-client-ui
Version:
## What is it? A library to help you create great dynamics applications.
56 lines • 2.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const Button_1 = require("office-ui-fabric-react/lib/Button");
const TextField_1 = require("office-ui-fabric-react/lib/TextField");
const cx = require("classnames");
class RestorableTextField extends React.Component {
constructor(props) {
super(props);
this.validate = (value) => {
if (this.props.validate) {
const rval = this.props.validate(value);
return rval ? rval : "";
}
return "";
};
this.onChanged = (value) => {
this.setState({
value
});
if (this.props.onChanged)
this.props.onChanged(value);
};
this.restore = () => {
this.setState({
value: this.props.initialValue
});
};
this.state = {
value: props.initialValue
};
}
render() {
return (React.createElement("div", { className: cx("NumberTextField", this.props.className) },
React.createElement(TextField_1.TextField, { className: 'NumberTextField-textField', label: this.props.label, value: this.state.value, onChanged: this.onChanged, onGetErrorMessage: this.validate }),
React.createElement("div", { className: 'NumberTextField-restoreButton' },
React.createElement(Button_1.DefaultButton, { onClick: this.restore }, "Restore"))));
}
}
exports.RestorableTextField = RestorableTextField;
/** Validate number with `isNan`. */
class NumberTextField extends React.Component {
constructor(props) {
super(props);
}
render() {
return (React.createElement(RestorableTextField, Object.assign({}, this.props, { validate: this.validateNumber })));
}
validateNumber(value) {
return isNaN(Number(value))
? `The value should be a number, actual is ${value}.`
: '';
}
}
exports.NumberTextField = NumberTextField;
//# sourceMappingURL=RestorableTextField.js.map