Files
icehrm/web/node_modules/rc-tree-select/lib/hooks/useKeyValueMapping.js
2020-05-20 18:47:29 +02:00

57 lines
1.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isDisabled = isDisabled;
exports.default = useKeyValueMapping;
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function isDisabled(dataNode, skipType) {
if (!dataNode) {
return true;
}
var _dataNode$data = dataNode.data,
disabled = _dataNode$data.disabled,
disableCheckbox = _dataNode$data.disableCheckbox;
switch (skipType) {
case 'select':
return disabled;
case 'checkbox':
return disabled || disableCheckbox;
}
return false;
}
function useKeyValueMapping(cacheKeyMap, cacheValueMap) {
var getEntityByKey = _react.default.useCallback(function (key) {
var skipType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'select';
var dataNode = cacheKeyMap.get(key);
if (isDisabled(dataNode, skipType)) {
return null;
}
return dataNode;
}, [cacheKeyMap]);
var getEntityByValue = _react.default.useCallback(function (value) {
var skipType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'select';
var dataNode = cacheValueMap.get(value);
if (isDisabled(dataNode, skipType)) {
return null;
}
return dataNode;
}, [cacheValueMap]);
return [getEntityByKey, getEntityByValue];
}