synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
37 lines • 2.75 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SearchDetails = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importStar)(require("react"));
var react_error_boundary_1 = require("react-error-boundary");
var useSearch_1 = require("../../../../utils/hooks/SynapseAPI/useSearch");
var ErrorUtils_1 = require("../../../../utils/ErrorUtils");
var DetailsView_1 = require("../view/DetailsView");
var SearchDetails = function (_a) {
var _b;
var searchQuery = _a.searchQuery, sharedProps = (0, tslib_1.__rest)(_a, ["searchQuery"]);
var _c = (0, useSearch_1.useSearchInfinite)(searchQuery, {
enabled: !!searchQuery.queryTerm,
}), data = _c.data, isLoading = _c.isLoading, hasNextPage = _c.hasNextPage, fetchNextPage = _c.fetchNextPage, isFetchingNextPage = _c.isFetchingNextPage, error = _c.error, isError = _c.isError;
var handleError = (0, react_error_boundary_1.useErrorHandler)();
(0, react_1.useEffect)(function () {
if (isError && error) {
handleError((0, ErrorUtils_1.toError)(error));
}
}, [isError, error, handleError]);
if (searchQuery.queryTerm) {
return (react_1.default.createElement(DetailsView_1.DetailsView, (0, tslib_1.__assign)({ entities: (_b = data === null || data === void 0 ? void 0 : data.pages.flatMap(function (page) { return page.hits; })) !== null && _b !== void 0 ? _b : [], isLoading: isLoading, hasNextPage: hasNextPage, fetchNextPage: fetchNextPage, isFetchingNextPage: isFetchingNextPage, noResultsPlaceholder: react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("img", { className: "SearchPlaceholderImage", alt: "No results found", src: "https://s3.amazonaws.com/static.synapse.org/images/search-sad.svg" }),
react_1.default.createElement("p", null,
"No results for \u201C",
searchQuery.queryTerm.join(' '),
"\u201D")) }, sharedProps, { enableSelectAll: false })));
}
else {
return (react_1.default.createElement(DetailsView_1.DetailsView, (0, tslib_1.__assign)({ entities: [], isLoading: false, hasNextPage: false, noResultsPlaceholder: react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("img", { className: "SearchPlaceholderImage", alt: "Begin searching", src: "https://s3.amazonaws.com/static.synapse.org/images/search-happy.svg" }),
react_1.default.createElement("p", null, "Enter a term or Synapse ID to start searching")) }, sharedProps, { enableSelectAll: false })));
}
};
exports.SearchDetails = SearchDetails;
//# sourceMappingURL=SearchDetails.js.map