Repository URL to install this package:
|
Version:
3.7.2 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const React = require("react");
const state_1 = require("@skava/state");
const utils_1 = require("@skava/utils");
const exotic_1 = require("exotic");
const state_2 = require("./state");
const renderProps_1 = require("./renderProps");
function initIncrementerState() {
return new state_2.IncrementerState();
}
function toIncrementerState(props) {
if (props.state === undefined) {
const state = initIncrementerState();
state.update(props);
return state;
}
else {
return props.state;
}
}
let Incrementer = class Incrementer extends React.Component {
constructor() {
super(...arguments);
this.updateState = (value) => {
this.observableState.update(value);
};
this.observableState = toIncrementerState(this.props);
}
componentWillMount() {
this.observableState.count = this.props.defaultValue;
}
render() {
const _a = this.props, { renderBox, renderWrapper } = _a, remainingProps = tslib_1.__rest(_a, ["renderBox", "renderWrapper"]);
const requiredProps = utils_1.omit(remainingProps, ['nowrap']);
const children = renderBox(requiredProps, this.observableState);
const view = renderWrapper(Object.assign({ children }, remainingProps));
return view;
}
};
Incrementer.defaultProps = {
className: '',
step: 1,
minValue: 1,
maxValue: 99,
defaultValue: 1,
onChange: exotic_1.NO_OP,
renderBox: renderProps_1.defaultRenderBox,
renderWrapper: renderProps_1.defaultRenderWrapper,
};
Incrementer = tslib_1.__decorate([
state_1.observerWithObservableProps
], Incrementer);
exports.Incrementer = Incrementer;
exports.default = Incrementer;
//# sourceMappingURL=Incrementer.js.map