react-instantsearch-nextjs
Version:
React InstantSearch SSR utilities for Next.js
46 lines (44 loc) • 2.11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TriggerSearch = TriggerSearch;
var _navigation = require("next/navigation");
var _react = require("react");
var _reactInstantsearchCore = require("react-instantsearch-core");
var _createInsertHTML = require("./createInsertHTML");
function TriggerSearch(_ref) {
var _waitForResultsRef$cu;
var nonce = _ref.nonce;
var instantsearch = (0, _reactInstantsearchCore.useInstantSearchContext)();
var _useRSCContext = (0, _reactInstantsearchCore.useRSCContext)(),
waitForResultsRef = _useRSCContext.waitForResultsRef;
var insertHTML = (0, _react.useContext)(_navigation.ServerInsertedHTMLContext) || function () {
throw new Error('Missing ServerInsertedHTMLContext');
};
if ((waitForResultsRef === null || waitForResultsRef === void 0 ? void 0 : (_waitForResultsRef$cu = waitForResultsRef.current) === null || _waitForResultsRef$cu === void 0 ? void 0 : _waitForResultsRef$cu.status) === 'pending') {
var _instantsearch$mainHe3;
if (instantsearch._hasSearchWidget) {
if (instantsearch.compositionID) {
var _instantsearch$mainHe;
(_instantsearch$mainHe = instantsearch.mainHelper) === null || _instantsearch$mainHe === void 0 ? void 0 : _instantsearch$mainHe.searchWithComposition();
} else {
var _instantsearch$mainHe2;
(_instantsearch$mainHe2 = instantsearch.mainHelper) === null || _instantsearch$mainHe2 === void 0 ? void 0 : _instantsearch$mainHe2.searchOnlyWithDerivedHelpers();
}
}
instantsearch._hasRecommendWidget && ((_instantsearch$mainHe3 = instantsearch.mainHelper) === null || _instantsearch$mainHe3 === void 0 ? void 0 : _instantsearch$mainHe3.recommend());
// If there are no widgets, we inject empty initial results instantly
if (!instantsearch._hasSearchWidget && !instantsearch._hasRecommendWidget) {
var options = {
inserted: false
};
insertHTML((0, _createInsertHTML.createInsertHTML)({
options: options,
results: {},
nonce: nonce
}));
}
}
return null;
}