synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
38 lines • 2.28 kB
JavaScript
;
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