synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
126 lines (125 loc) • 4.2 kB
JavaScript
import { jsxs as I, jsx as o, Fragment as b } from "react/jsx-runtime";
import { getEntity as S, getFiles as L } from "../../synapse-client/SynapseClient.js";
import "../../utils/PermissionLevelToAccessType.js";
import { SRC_SIGN_IN_CLASS as E } from "../../utils/SynapseConstants.js";
import { useState as m, useEffect as P } from "react";
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 h } from "@sage-bionetworks/synapse-types";
import "../../utils/functions/EntityTypeUtils.js";
import "lodash-es";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import { useSynapseContext as R } from "../../utils/context/SynapseContext.js";
import "use-deep-compare-effect";
import "@tanstack/react-query";
import "@tanstack/query-core";
import "lodash-es/isEmpty";
import "lodash-es/isEqual";
import "lodash-es/xorWith";
import "@mui/material";
import "@sage-bionetworks/synapse-client";
import "../../utils/types/IsType.js";
import "../../utils/hooks/useCookiePreferences.js";
import "../../utils/hooks/useSourceAppConfigs.js";
import "universal-cookie";
import "../../utils/AppUtils/session/ApplicationSessionContext.js";
import "../../utils/context/FullContextProvider.js";
import "../../utils/context/DocumentMetadataContext.js";
import '../../style/components/_spinner.css';/* empty css */
import "react-router";
function re({ params: e }) {
const { accessToken: n, isAuthenticated: v } = R(), [s, u] = m(), [f, F] = m(), [g, H] = m(), c = e.width ?? "", a = e.height ?? "";
return P(() => {
const U = async () => {
if (e.videoId)
u(`https://www.youtube.com/embed/${e.videoId}`);
else if (e.vimeoId)
u(`https://player.vimeo.com/video/${e.vimeoId}`);
else {
const d = e.oggSynapseId || e.mp4SynapseId || e.webmSynapseId, r = await S(n, d), i = [
{
associateObjectId: d,
associateObjectType: h.FileEntity,
fileHandleId: r.dataFileHandleId
}
];
let p;
if (e.vttSynapseId) {
const t = await S(
n,
e.vttSynapseId
);
p = t.dataFileHandleId, i.push({
associateObjectId: e.vttSynapseId,
associateObjectType: h.FileEntity,
fileHandleId: t.dataFileHandleId
});
}
w(
i,
r.dataFileHandleId,
p
);
}
}, w = (d, r, i) => {
L({
includeFileHandles: !1,
includePreSignedURLs: !0,
includePreviewPreSignedURLs: !1,
requestedFiles: d
}, n).then((t) => {
const y = t.requestedFiles.find(
(l) => l.fileHandleId === r
);
if (y?.preSignedURL && F(y.preSignedURL), i) {
const l = t.requestedFiles.find(
(V) => V.fileHandleId === i
);
l?.preSignedURL && H(l.preSignedURL);
}
}).catch((t) => {
console.error("Error on getting video ", t);
});
};
U();
}, [s, e, n, a, c]), !v && !s ? /* @__PURE__ */ I("p", { children: [
"You will need to",
/* @__PURE__ */ o(
"button",
{
"data-testid": "video-login",
className: `${E} sign-in-btn default
`,
children: "Sign in"
}
),
"in for access to that resource."
] }) : f ? /* @__PURE__ */ I(
"video",
{
controls: !0,
width: c,
height: a,
"data-testid": "synapse-video-url",
crossOrigin: "anonymous",
children: [
/* @__PURE__ */ o("source", { src: f }),
g && /* @__PURE__ */ o("track", { src: g, kind: "subtitles", default: !0 }),
"It does not support the HTML5 Video element."
]
}
) : s ? /* @__PURE__ */ o(
"iframe",
{
title: "video frame",
src: s,
width: c,
height: a
}
) : /* @__PURE__ */ o(b, {});
}
export {
re as default
};
//# sourceMappingURL=SynapseVideo.js.map