synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
47 lines • 2.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importStar)(require("react"));
var react_tooltip_1 = (0, tslib_1.__importDefault)(require("react-tooltip"));
var SynapseTableConstants_1 = require("../table/SynapseTableConstants");
var SynapseContext_1 = require("../../utils/SynapseContext");
var react_error_boundary_1 = require("react-error-boundary");
var ErrorUtils_1 = require("../../utils/ErrorUtils");
var useGetDownloadListStatistics_1 = require("../../utils/hooks/SynapseAPI/useGetDownloadListStatistics");
var IconSvg_1 = (0, tslib_1.__importDefault)(require("../IconSvg"));
/**
* Nav bar item, displayed when files have been added to the Download Cart.
* This must be configured with the URL of a page dedicated to showing the Download Cart.
*/
function ShowDownloadV2(_a) {
var _b;
var to = _a.to, _c = _a.className, className = _c === void 0 ? '' : _c;
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
var handleError = (0, react_error_boundary_1.useErrorHandler)();
var idForToolTip = 'SHOW_DOWNLOAD_TOOLTIP';
var tooltipText = 'Click to view items in your download cart.';
var _d = (0, useGetDownloadListStatistics_1.useGetDownloadListStatistics)(), data = _d.data, isLoading = _d.isLoading, isError = _d.isError, newError = _d.error;
(0, react_1.useEffect)(function () {
if (isError && newError && accessToken) {
handleError((0, ErrorUtils_1.toError)(newError));
}
}, [isError, newError, handleError, accessToken]);
if (!accessToken || isLoading) {
return react_1.default.createElement(react_1.default.Fragment, null);
}
var size = (_b = data === null || data === void 0 ? void 0 : data.totalNumberOfFiles) !== null && _b !== void 0 ? _b : 0;
if (size === 0) {
return react_1.default.createElement(react_1.default.Fragment, null);
}
var content = (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("span", { id: idForToolTip, "data-for": idForToolTip, "data-tip": tooltipText },
react_1.default.createElement("span", { className: "SRC-primary-text-color" },
react_1.default.createElement(IconSvg_1.default, { options: {
icon: 'cart'
} })),
react_1.default.createElement("span", { className: "download-cart-size" }, size)),
react_1.default.createElement(react_tooltip_1.default, { delayShow: SynapseTableConstants_1.TOOLTIP_DELAY_SHOW, place: 'bottom', type: 'dark', effect: 'solid', border: true, id: idForToolTip })));
return react_1.default.createElement("a", { className: "Download-Link v2 " + className, href: to, rel: "noopener noreferrer" }, content);
}
exports.default = ShowDownloadV2;
//# sourceMappingURL=ShowDownloadV2.js.map