@wix/design-system
Version:
@wix/design-system
48 lines (47 loc) • 1.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.useLinkedMode = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var useLinkedMode = _ref => {
var _ref$initial = _ref.initial,
initial = _ref$initial === void 0 ? true : _ref$initial,
onChangeCallbacks = _ref.onChangeCallbacks,
onInvalidCallbacks = _ref.onInvalidCallbacks,
onBlurCallbacks = _ref.onBlurCallbacks;
var _useState = (0, _react.useState)(initial),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
isLinkingEnabled = _useState2[0],
setLinking = _useState2[1];
var _useState3 = (0, _react.useState)(false),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
isDirty = _useState4[0],
setIsDirty = _useState4[1];
var linkedOnChange = function linkedOnChange() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
onChangeCallbacks.forEach(onChange => onChange == null ? void 0 : onChange(...args));
setIsDirty(true);
};
var linkedOnInvalid = function linkedOnInvalid() {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
onInvalidCallbacks.forEach(onInvalid => onInvalid == null ? void 0 : onInvalid(...args));
setIsDirty(true);
};
var linkedOnBlur = () => {
isDirty && onBlurCallbacks.forEach(onBlur => onBlur());
setIsDirty(false);
};
return [{
linkedOnChange,
linkedOnInvalid,
linkedOnBlur,
isLinkingEnabled
}, setLinking];
};
exports.useLinkedMode = useLinkedMode;
//# sourceMappingURL=useLinkedMode.js.map