useCheckedKeys.js 1.2 KB

123456789101112131415161718192021222324252627
  1. import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
  2. import * as React from 'react';
  3. import { conductCheck } from "rc-tree/es/utils/conductUtil";
  4. var useCheckedKeys = function useCheckedKeys(rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities) {
  5. return React.useMemo(function () {
  6. var extractValues = function extractValues(values) {
  7. return values.map(function (_ref) {
  8. var value = _ref.value;
  9. return value;
  10. });
  11. };
  12. var checkedKeys = extractValues(rawLabeledValues);
  13. var halfCheckedKeys = extractValues(rawHalfCheckedValues);
  14. var missingValues = checkedKeys.filter(function (key) {
  15. return !keyEntities[key];
  16. });
  17. var finalCheckedKeys = checkedKeys;
  18. var finalHalfCheckedKeys = halfCheckedKeys;
  19. if (treeConduction) {
  20. var conductResult = conductCheck(checkedKeys, true, keyEntities);
  21. finalCheckedKeys = conductResult.checkedKeys;
  22. finalHalfCheckedKeys = conductResult.halfCheckedKeys;
  23. }
  24. return [Array.from(new Set([].concat(_toConsumableArray(missingValues), _toConsumableArray(finalCheckedKeys)))), finalHalfCheckedKeys];
  25. }, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);
  26. };
  27. export default useCheckedKeys;