Repository URL to install this package:
|
Version:
4.0.35 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const mobx_react_1 = require("xmobx/mobx-react");
const exotic_1 = require("exotic");
const state_1 = require("../../../state");
const renderProps_1 = require("./renderProps");
let Toggle = class Toggle extends react_1.default.Component {
constructor() {
super(...arguments);
this.state = state_1.commonState(this.props);
this.handleToggle = event => {
const {
label,
value,
onToggle
} = this.props;
this.state.handleToggleSelected();
if (exotic_1.isFunction(onToggle)) {
const args = {
isSelected: this.state.isSelected,
label,
value
};
onToggle(args);
}
};
}
componentWillUpdate(nextProps) {
const {
isSelected
} = nextProps;
const {
isSelected: oldIsSelected
} = this.props;
if (exotic_1.isSafe(isSelected) && exotic_1.isSafe(oldIsSelected) && oldIsSelected !== isSelected) {
isSelected === true ? this.state.select(isSelected) : this.state.unselect(isSelected);
}
}
render() {
const _a = this.props,
{
renderWrapper
} = _a,
remainingProps = tslib_1.__rest(_a, ["renderWrapper"]);
const children = renderProps_1.defaultRenderBox(remainingProps, this.state);
const view = renderWrapper(Object.assign({
children
}, remainingProps, {
onToggle: this.handleToggle
}), this.state);
return view;
}
};
Toggle.defaultProps = {
className: '',
borderColor: '#000000',
bgColor: '#000000',
tickColor: '#ffffff',
// handler
onToggle: exotic_1.NO_OP,
// renderProps
renderAfterLabel: renderProps_1.defaultRenderAfterLabel,
renderLabel: renderProps_1.defaultRenderLabel,
renderBeforeLabel: renderProps_1.defaultRenderBeforeLabel,
renderIcon: renderProps_1.defaultRenderIcon,
renderWrapper: renderProps_1.defaultRenderWrapper
};
Toggle = tslib_1.__decorate([mobx_react_1.observer], Toggle);
exports.Toggle = Toggle;
exports.default = Toggle; //# sourceMappingURL=Toggle.js.map