useOptions.js 1.2 KB

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = useOptions;
  8. var React = _interopRequireWildcard(require("react"));
  9. var _useEntities = _interopRequireDefault(require("./useEntities"));
  10. function useOptions(mergedFieldNames, options) {
  11. var mergedOptions = React.useMemo(function () {
  12. return options || [];
  13. }, [options]);
  14. // Only used in multiple mode, this fn will not call in single mode
  15. var getPathKeyEntities = (0, _useEntities.default)(mergedOptions, mergedFieldNames);
  16. /** Convert path key back to value format */
  17. var getValueByKeyPath = React.useCallback(function (pathKeys) {
  18. var keyPathEntities = getPathKeyEntities();
  19. return pathKeys.map(function (pathKey) {
  20. var nodes = keyPathEntities[pathKey].nodes;
  21. return nodes.map(function (node) {
  22. return node[mergedFieldNames.value];
  23. });
  24. });
  25. }, [getPathKeyEntities, mergedFieldNames]);
  26. return [mergedOptions, getPathKeyEntities, getValueByKeyPath];
  27. }