@findify/mjs
Version:
Findify widgets
59 lines (42 loc) • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _isObject2 = require("lodash/isObject");
var _isObject3 = _interopRequireDefault(_isObject2);
var _setDisplayName2 = require("recompose/setDisplayName");
var _setDisplayName3 = _interopRequireDefault(_setDisplayName2);
var _withContext2 = require("recompose/withContext");
var _withContext3 = _interopRequireDefault(_withContext2);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var empty = {};
var reduceHooks = function reduceHooks(hooks, context) {
return Object.keys(hooks).reduce(function (acc, key) {
return key.includes(context) || key.includes('*') ? _objectSpread({}, acc, _defineProperty({}, key.replace(context + '.', '').replace('*.', ''), hooks[key])) : acc;
}, empty);
};
var provideHooks = function provideHooks(context) {
return (0, _withContext3.default)({
hooks: _propTypes2.default.object,
globalConfig: _propTypes2.default.object,
trackEvent: _propTypes2.default.func
}, function (_ref) {
var hooks = _ref.hooks,
globalConfig = _ref.config,
trackEvent = _ref.trackEvent;
return {
hooks: !context ? hooks : !(0, _isObject3.default)(hooks) ? empty : reduceHooks(hooks, context),
globalConfig: globalConfig,
trackEvent: trackEvent
};
});
};
/**
* Allow get hooks from context in ui-components. hook key is [context].[hook],
* it will split hooks for specific feature like mobile.facets & response.facets
*/
exports.default = (0, _setDisplayName3.default)('provideHooks')(provideHooks);