UNPKG

@aappddeevv/dynamics-client-ui

Version:

## What is it? A library to help you create great dynamics applications.

56 lines 2.11 kB
"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