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

38 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileHandleLink = void 0; var tslib_1 = require("tslib"); var synapseTypes_1 = require("../../utils/synapseTypes"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var utils_1 = require("../../utils"); var react_fontawesome_1 = require("@fortawesome/react-fontawesome"); var SynapseContext_1 = require("../../utils/SynapseContext"); var FileHandleLink = function (props) { var fileHandleId = props.fileHandleId, showDownloadIcon = props.showDownloadIcon, tableEntityConcreteType = props.tableEntityConcreteType, rowId = props.rowId, tableId = props.tableId, _a = props.redirect, redirect = _a === void 0 ? false : _a, displayValue = props.displayValue; var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; if (!tableEntityConcreteType) { // still loading return react_1.default.createElement(react_1.default.Fragment, null); } var isFileView = tableEntityConcreteType.includes('EntityView'); var fileAssociateType = isFileView ? synapseTypes_1.FileHandleAssociateType.FileEntity : synapseTypes_1.FileHandleAssociateType.TableEntity; var fileAssociateId = isFileView ? rowId : tableId; return (react_1.default.createElement("button", { // @ts-ignore onClick: function () { if (accessToken && fileAssociateId) { utils_1.SynapseClient.getActualFileHandleByIdURL(fileHandleId, accessToken, fileAssociateType, fileAssociateId, redirect) .then(function (url) { window.open(url, '_blank'); }) .catch(function (err) { console.error('Error on retrieving file handle url ', err); }); } }, className: "SRC-primary-text-color " + utils_1.SynapseConstants.SRC_SIGN_IN_CLASS, type: "button", style: { padding: 0 } }, displayValue !== null && displayValue !== void 0 ? displayValue : fileHandleId, showDownloadIcon && (react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { style: { marginLeft: 5 }, icon: "download" })))); }; exports.FileHandleLink = FileHandleLink; //# sourceMappingURL=FileHandleLink.js.map