synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
49 lines (48 loc) • 1.8 kB
JavaScript
import { getFiles as a } 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 "@sage-bionetworks/synapse-types";
import "../functions/EntityTypeUtils.js";
import "../SynapseConstants.js";
import "lodash-es";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import { useSynapseContext as c } from "../context/SynapseContext.js";
import d from "ua-parser-js";
function U() {
const { accessToken: t } = c();
return { downloadFile: async ({
fileHandleId: s,
associatedObjectId: r,
associatedObjectType: l
}) => {
const i = new d().getBrowser().name == "Safari";
let e = null;
i && (e = window.open(
"",
"Safari Download",
"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,popup,width=600,height=200"
), e.document.body.innerHTML = "Downloading file on Safari...");
try {
const o = (await a({
includeFileHandles: !0,
includePreSignedURLs: !0,
includePreviewPreSignedURLs: !1,
requestedFiles: [{
fileHandleId: s,
associateObjectId: r,
associateObjectType: l
}]
}, t)).requestedFiles[0].preSignedURL;
o ? i && e ? (e.location = o, setTimeout(() => {
e && e.close();
}, 1e4)) : window.open(o) : (e?.close(), console.log("Failed to get file download link"));
} catch (n) {
e?.close(), console.log("Failed to get file download link: ", n);
}
} };
}
export {
U as useDirectDownloadHandler
};
//# sourceMappingURL=useDirectDownloadHandler.js.map