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

43 lines
1.1 KiB
JavaScript

import React from 'react';
export 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;
}
export default function useKeyValueMapping(cacheKeyMap, cacheValueMap) {
var getEntityByKey = React.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.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];
}