UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

71 lines (70 loc) 2.44 kB
import { jsx as r, jsxs as p, Fragment as y } from "react/jsx-runtime"; import * as o from "../../synapse-client/SynapseClient.js"; import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode"; import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse"; import "@sage-bionetworks/synapse-client/util/SynapseClientError"; import { FileHandleAssociateType as F } from "@sage-bionetworks/synapse-types"; import "../../utils/functions/EntityTypeUtils.js"; import "../../utils/SynapseConstants.js"; import "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import { useSynapseContext as E } from "../../utils/context/SynapseContext.js"; import { isFileEntity as x, isExternalFileHandle as u } from "../../utils/types/IsType.js"; import { OpenInNewTwoTone as g } from "@mui/icons-material"; import { useState as H, useEffect as h } from "react"; const C = (s) => { const { accessToken: n } = E(), { synId: i, className: d } = s, [l, c] = H(void 0); h(() => { (async () => { try { const e = await o.getEntity( n, i ); if (!x(e)) throw new Error(`File Entity expected but found ${e}`); const m = { requestedFiles: [ { associateObjectId: i, associateObjectType: F.FileEntity, fileHandleId: e.dataFileHandleId } ], includeFileHandles: !0, includePreSignedURLs: !1, includePreviewPreSignedURLs: !1 }, t = (await o.getFiles(m, n)).requestedFiles[0].fileHandle; if (t && u(t)) c({ externalFileHandle: t, fileEntity: e }); else throw new Error( `Not an external file handle: ${t?.id}` ); } catch (e) { console.error("Error on getting external file handle = ", e); } })(); }, [i, n]); const a = l?.externalFileHandle, f = l?.fileEntity; return a ? /* @__PURE__ */ r( "a", { href: a.externalURL, className: d, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ p("span", { children: [ f?.name, /* @__PURE__ */ r(g, { style: { marginLeft: 5 } }) ] }) } ) : /* @__PURE__ */ r(y, {}); }; export { C as ExternalFileHandleLink }; //# sourceMappingURL=ExternalFileHandleLink.js.map