useValues.js 1.2 KB

123456789101112131415161718192021222324
  1. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  2. import { conductCheck } from "rc-tree/es/utils/conductUtil";
  3. import * as React from 'react';
  4. import { toPathKeys } from "../utils/commonUtil";
  5. export default function useValues(multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues) {
  6. // Fill `rawValues` with checked conduction values
  7. return React.useMemo(function () {
  8. var _getMissingValues = getMissingValues(rawValues),
  9. _getMissingValues2 = _slicedToArray(_getMissingValues, 2),
  10. existValues = _getMissingValues2[0],
  11. missingValues = _getMissingValues2[1];
  12. if (!multiple || !rawValues.length) {
  13. return [existValues, [], missingValues];
  14. }
  15. var keyPathValues = toPathKeys(existValues);
  16. var keyPathEntities = getPathKeyEntities();
  17. var _conductCheck = conductCheck(keyPathValues, true, keyPathEntities),
  18. checkedKeys = _conductCheck.checkedKeys,
  19. halfCheckedKeys = _conductCheck.halfCheckedKeys;
  20. // Convert key back to value cells
  21. return [getValueByKeyPath(checkedKeys), getValueByKeyPath(halfCheckedKeys), missingValues];
  22. }, [multiple, rawValues, getPathKeyEntities, getValueByKeyPath, getMissingValues]);
  23. }