UNPKG

synapse-react-client

Version:

[![Build Status](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client.svg?branch=main)](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synaps

50 lines 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var react_bootstrap_1 = require("react-bootstrap"); var SynapseClient_1 = require("../utils/SynapseClient"); var SynapseContext_1 = require("../utils/SynapseContext"); var DirectDownloadButton = function (props) { var id = props.id, fileHandleAssociation = props.fileHandleAssociation, className = props.className, variant = props.variant, fileName = props.fileName; var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; var getDownloadLink = function () { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () { var batchFileRequest, file, preSignedURL, e_1; return (0, tslib_1.__generator)(this, function (_a) { switch (_a.label) { case 0: if (!fileHandleAssociation.fileHandleId || !accessToken) return [2 /*return*/]; batchFileRequest = { requestedFiles: [fileHandleAssociation], includePreSignedURLs: true, includeFileHandles: false, includePreviewPreSignedURLs: false, }; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, (0, SynapseClient_1.getFiles)(batchFileRequest, accessToken)]; case 2: file = _a.sent(); preSignedURL = file.requestedFiles[0].preSignedURL; if (!preSignedURL) { console.log('Fail to get file download link'); } else { window.open(preSignedURL); } return [3 /*break*/, 4]; case 3: e_1 = _a.sent(); console.log('Fail to get file download link', e_1); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(react_bootstrap_1.Button, { id: id, variant: variant, className: className, onClick: function (e) { return getDownloadLink(); } }, fileName))); }; exports.default = DirectDownloadButton; //# sourceMappingURL=DirectDownloadButton.js.map