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