UNPKG

react-instantsearch-nextjs

Version:
40 lines (39 loc) 1.94 kB
import { ServerInsertedHTMLContext } from "next/navigation.js"; import { useContext } from 'react'; import { useInstantSearchContext, useRSCContext } from 'react-instantsearch-core'; import { createInsertHTML } from "./createInsertHTML.js"; export function TriggerSearch(_ref) { var _waitForResultsRef$cu; var nonce = _ref.nonce; var instantsearch = useInstantSearchContext(); var _useRSCContext = useRSCContext(), waitForResultsRef = _useRSCContext.waitForResultsRef; var insertHTML = useContext(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(createInsertHTML({ options: options, results: {}, nonce: nonce })); } } return null; }