UNPKG

react-instantsearch-core

Version:
38 lines (37 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useIndex = useIndex; var _index = _interopRequireDefault(require("instantsearch.js/cjs/widgets/index/index")); var _react = require("react"); var _useForceUpdate = require("./useForceUpdate"); var _useIndexContext = require("./useIndexContext"); var _useInstantSearchServerContext = require("./useInstantSearchServerContext"); var _useInstantSearchSSRContext = require("./useInstantSearchSSRContext"); var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); var _useStableValue = require("./useStableValue"); var _useWidget = require("./useWidget"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function useIndex(props) { var serverContext = (0, _useInstantSearchServerContext.useInstantSearchServerContext)(); var ssrContext = (0, _useInstantSearchSSRContext.useInstantSearchSSRContext)(); var initialResults = ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.initialResults; var parentIndex = (0, _useIndexContext.useIndexContext)(); var stableProps = (0, _useStableValue.useStableValue)(props); var indexWidget = (0, _react.useMemo)(function () { return (0, _index.default)(stableProps); }, [stableProps]); var helper = indexWidget.getHelper(); var forceUpdate = (0, _useForceUpdate.useForceUpdate)(); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { forceUpdate(); }, [helper, forceUpdate]); (0, _useWidget.useWidget)({ widget: indexWidget, parentIndex: parentIndex, props: stableProps, shouldSsr: Boolean(serverContext || initialResults) }); return indexWidget; }