react-instantsearch-core
Version:
⚡ Lightning-fast search for React, by Algolia
62 lines (61 loc) • 2.32 kB
JavaScript
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
};
}
;