synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
71 lines (70 loc) • 2.44 kB
JavaScript
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