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

49 lines (48 loc) 1.8 kB
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