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

178 lines (177 loc) 6.36 kB
import { jsx as i, jsxs as w } from "react/jsx-runtime"; import "../utils/functions/DateFormatter.js"; import "../utils/SynapseConstants.js"; import "@mui/icons-material"; import "@mui/material"; import "@react-hookz/web"; import "dayjs"; import "./styled/StyledFormControl.js"; import { useEffect as p, useSyncExternalStore as A, useRef as b, useMemo as c, useCallback as g, Suspense as x } from "react"; import E from "./Authentication/StandaloneLoginForm.js"; import "./Authentication/TwoFactorEnrollmentForm.js"; import "./styled/LeftRightPanel.js"; import * as y from "../synapse-client/SynapseClient.js"; import { SynapseContextProvider as R } from "../utils/context/SynapseContext.js"; import { QueryClient as O, QueryClientProvider as P } from "@tanstack/react-query"; import "../assets/ArcusBioIcon.svg.js"; import "@mui/material/SvgIcon"; import "../assets/icons/AccessPending.svg.js"; import "../assets/icons/AccessPendingCloud.svg.js"; import "../assets/icons/FileWithShield.svg.js"; import "../assets/icons/MultiFile.svg.js"; import "../assets/icons/UnpackagableFile.svg.js"; import "../assets/icons/bioChemicalPhysical.svg.js"; import "../assets/icons/computationalTool.svg.js"; import "../assets/icons/dataReuse.svg.js"; import "../assets/icons/inSilicoModel.svg.js"; import "../assets/icons/modelSystem.svg.js"; import "../assets/mui_components/PackagableFile.svg.js"; import "../assets/icons/spatialProfiling.svg.js"; import { SynapseToastContainer as Q } from "./ToastMessage/ToastMessage.js"; import "./Authentication/RecoveryCodeGrid.js"; import "../utils/functions/EntityTypeUtils.js"; import "mui-one-time-password-input"; 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 { STACK_MAP as M } from "../utils/functions/getEndpoint.js"; import "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import "../utils/PermissionLevelToAccessType.js"; import T from "../utils/hooks/useDetectSSOCode.js"; import "use-deep-compare-effect"; import "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "@sage-bionetworks/synapse-client"; import "../utils/types/IsType.js"; import "../utils/hooks/useCookiePreferences.js"; import "../utils/hooks/useSourceAppConfigs.js"; import "universal-cookie"; import { ApplicationSessionContextProvider as z } from "../utils/AppUtils/session/ApplicationSessionContext.js"; import { defaultQueryClientConfig as F } from "../utils/context/FullContextProvider.js"; import "../utils/context/DocumentMetadataContext.js"; import '../style/components/_spinner.css';/* empty css */ import { createMemoryRouter as D } from "react-router"; import { SynapseSessionManager as L } from "../utils/AppUtils/session/SynapseSessionManager.js"; import { ReactQueryDevtools as _ } from "@tanstack/react-query-devtools"; import { RouterProvider as N } from "react-router/dom"; const u = new O(F), o = new L({ onSessionInvalid: () => { o.refreshSession(); } }); function U(n) { const e = M[n]; window.SRC_OVERRIDE_ENDPOINT_CONFIG = e; } function Vt(n) { const { storybookContext: e } = n, r = e.globals.stack || e.parameters.stack; p(() => { U(r); }, [r]); const t = A( // eslint-disable-next-line @typescript-eslint/unbound-method o.subscribe, // eslint-disable-next-line @typescript-eslint/unbound-method o.getSnapshot ), s = b(!1); p(() => (s.current || (o.start(), s.current = !0), () => { o.dispose(), s.current = !1; }), []), p(() => { s.current && (o.dispose(), o.start()); }, [r]); const C = e.parameters.requireLogin && r !== "mock" && t.hasInitializedSession && !t.isAuthenticated, { isLoading: l } = T({ onSignInComplete: () => { o.refreshSession(); }, onError: (d) => { console.error("SSO error in Storybook:", d); }, isInitializingSession: !t.hasInitializedSession, isAuthenticated: t.isAuthenticated }); p(() => { async function d() { await u.cancelQueries(), await u.resetQueries(); } d(); }, [t.token, r]); const a = c(() => r === "mock" ? e.args.isAuthenticated ? "fake token" : void 0 : t.token, [t.token, r, e.args.isAuthenticated]), m = c(() => r === "mock" ? !!e.args.isAuthenticated : t.isAuthenticated, [ t.isAuthenticated, r, e.args.isAuthenticated ]), S = g(async () => { await o.refreshSession(); }, []), f = g(async () => { await o.clearSession(); }, []), k = c( () => ({ token: a, realmId: t.realmId, userId: t.userId, isAuthenticated: m, hasInitializedSession: t.hasInitializedSession, refreshSession: S, clearSession: f, isLoadingSSO: l, twoFactorAuthSSOErrorResponse: void 0, termsOfServiceStatus: void 0, twoFactorStatus: void 0 }), [ a, m, t.realmId, t.userId, t.hasInitializedSession, S, f, l ] ), I = c( () => ({ accessToken: a, isAuthenticated: m, isInExperimentalMode: y.isInSynapseExperimentalMode(), utcTime: y.getUseUtcTimeFromCookie(), withErrorBoundary: !0, downloadCartPageUrl: "/?path=/story/download-downloadcartpage--demo" }), [a, m] ), h = /* @__PURE__ */ i(x, { fallback: "global suspense loading...", children: /* @__PURE__ */ i(P, { client: u, children: /* @__PURE__ */ i(z, { context: k, children: /* @__PURE__ */ w( R, { synapseContext: I, children: [ e.globals.showReactQueryDevtools && /* @__PURE__ */ i(_, {}), /* @__PURE__ */ i(Q, {}), /* @__PURE__ */ i("main", { children: C ? /* @__PURE__ */ i( E, { sessionCallback: () => { o.refreshSession(); } } ) : n.children }) ] }, r ) }) }) }); if (!e.parameters.withRouter) return h; const v = D([ { path: "/", element: h } ]); return /* @__PURE__ */ i(N, { router: v }); } export { Vt as StorybookComponentWrapper, Vt as default }; //# sourceMappingURL=StorybookComponentWrapper.js.map