UNPKG

react-instantsearch-core

Version:
62 lines (61 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useInstantSearch = useInstantSearch; var _react = require("react"); var _useInstantSearchContext = require("../lib/useInstantSearchContext"); var _useIsomorphicLayoutEffect = require("../lib/useIsomorphicLayoutEffect"); var _useSearchResults2 = require("../lib/useSearchResults"); var _useSearchState2 = require("../lib/useSearchState"); function useInstantSearch() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, catchError = _ref.catchError; var search = (0, _useInstantSearchContext.useInstantSearchContext)(); var _useSearchState = (0, _useSearchState2.useSearchState)(), uiState = _useSearchState.uiState, setUiState = _useSearchState.setUiState, indexUiState = _useSearchState.indexUiState, setIndexUiState = _useSearchState.setIndexUiState, renderState = _useSearchState.renderState, indexRenderState = _useSearchState.indexRenderState; var _useSearchResults = (0, _useSearchResults2.useSearchResults)(), results = _useSearchResults.results, scopedResults = _useSearchResults.scopedResults; var addMiddlewares = (0, _react.useCallback)(function () { for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { middlewares[_key] = arguments[_key]; } search.use.apply(search, middlewares); return function () { search.unuse.apply(search, middlewares); }; }, [search]); var refresh = (0, _react.useCallback)(function () { search.refresh(); }, [search]); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { if (catchError) { var onError = function onError() {}; search.addListener('error', onError); return function () { return search.removeListener('error', onError); }; } return function () {}; }, [search, catchError]); return { results: results, scopedResults: scopedResults, uiState: uiState, setUiState: setUiState, indexUiState: indexUiState, setIndexUiState: setIndexUiState, renderState: renderState, indexRenderState: indexRenderState, addMiddlewares: addMiddlewares, refresh: refresh, status: search.status, error: search.error }; }