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

181 lines (180 loc) 5.18 kB
import * as c 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 "../../utils/functions/EntityTypeUtils.js"; import "../../utils/SynapseConstants.js"; import { cloneDeep as p } from "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import { useSynapseContext as l } from "../../utils/context/SynapseContext.js"; import { useEffect as f } from "react"; import "use-deep-compare-effect"; import "../../utils/PermissionLevelToAccessType.js"; import "universal-cookie"; import "../../utils/AppUtils/session/ApplicationSessionContext.js"; import "react/jsx-runtime"; import "../../utils/context/FullContextProvider.js"; import "../../utils/context/DocumentMetadataContext.js"; import "@mui/material"; import '../../style/components/_spinner.css';/* empty css */ import { useQueryClient as g, useQuery as u } from "@tanstack/react-query"; import "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "react-router"; import "@sage-bionetworks/synapse-client"; import "../../utils/types/IsType.js"; import { useCreateUrlForData as w, fetchBlob as P } from "../../utils/hooks/usePreFetchResource.js"; import "../../utils/hooks/useCookiePreferences.js"; import "../../utils/hooks/useSourceAppConfigs.js"; function Z(e, r = !1, n) { const { accessToken: i, keyFactory: t } = l(), s = async () => { const y = await c.getFiles( { requestedFiles: [e], includeFileHandles: !1, includePreSignedURLs: !0, includePreviewPreSignedURLs: !1 }, r ? void 0 : i ); return await P(y.requestedFiles[0].preSignedURL); }, o = u({ ...n, queryKey: t.getStablePresignedUrlFromFHAQueryKey( e, r ), queryFn: s, staleTime: 1 / 0 }), { data: a, error: d } = o; return f(() => { d && console.error( `Failed to fetch file object. See network log for details: FileHandleAssociation=${JSON.stringify( e )}` ); }, [d, e]), { dataUrl: w(a), queryResult: o }; } function _(e, r, n, i) { r.requestedFiles.length !== 1 && console.warn("useGetPresignedUrlContent only supports one file at a time"); const { accessToken: t, keyFactory: s } = l(), o = async () => { const a = await c.getFiles(r, t); return await c.getFileHandleContent( e, a.requestedFiles[0].preSignedURL, n ); }; return u({ ...i, queryKey: s.getPresignedUrlContentQueryKey( e, r, n ), queryFn: o, staleTime: 1 / 0 }); } function z(e, r = !1, n) { const { accessToken: i, keyFactory: t } = l(), s = async () => { const o = await c.getFiles( { requestedFiles: [e], includeFileHandles: !0, includePreSignedURLs: !0, includePreviewPreSignedURLs: !1 }, r ? void 0 : i ); return await c.getFileHandleContent( o.requestedFiles[0].fileHandle, o.requestedFiles[0].preSignedURL ); }; return u({ ...n, queryKey: t.getPresignedUrlFromFHAContentQueryKey( e, r ), queryFn: s, staleTime: 1 / 0 }); } function A(e, r) { const { keyFactory: n } = l(), i = async () => { const t = await c.getProfilePicPreviewPresignedUrl( e ); return t ? await (await fetch(t, { method: "GET", mode: "cors", cache: "no-cache" })).blob() : null; }; return u({ ...r, queryKey: n.getProfileImageQueryKey(e), queryFn: i, staleTime: 1 / 0 }); } function ee(e, r) { const { accessToken: n, keyFactory: i } = l(), t = g(), s = async () => { const o = await c.getFiles(e, n); return o.requestedFiles.forEach((a) => { const d = e.requestedFiles.find( (F) => F.fileHandleId === a.fileHandleId ), y = { ...p(e), requestedFiles: [d] }, m = { requestedFiles: [a] }; t.setQueryData( i.getBatchOfFiles(y), m ); }), o; }; if (e.includePreSignedURLs || e.includePreviewPreSignedURLs) throw new Error("useGetFileBatch does not support pre-signed URLs."); return u({ ...r, queryKey: i.getBatchOfFiles(e), queryFn: s }); } function te(e, r) { const { keyFactory: n } = l(), i = async () => { try { if (!e) throw new Error("File URL must be set"); const t = await fetch(e); if (!t.ok) throw new Error(`Error fetching file: ${t.statusText}`); return await t.text(); } catch (t) { console.error(t); } return ""; }; return u({ ...r, queryKey: n.getFileContentKey(e), queryFn: i }); } export { te as useFileContent, ee as useGetFileBatch, _ as useGetPresignedUrlContent, z as useGetPresignedUrlContentFromFHA, A as useGetProfileImage, Z as useGetStablePresignedUrl }; //# sourceMappingURL=useFiles.js.map