@clerk/react 6.0.0-snapshot.v20260121133427 → 6.0.0-snapshot.v20260122040150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-3DNOIT7T.mjs → chunk-BD6P2PRO.mjs} +49 -2
- package/dist/chunk-BD6P2PRO.mjs.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +22 -65
- package/dist/index.mjs.map +1 -1
- package/dist/internal.d.mts +7 -1
- package/dist/internal.d.ts +7 -1
- package/dist/internal.js +48 -0
- package/dist/internal.js.map +1 -1
- package/dist/internal.mjs +3 -1
- package/dist/internal.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-3DNOIT7T.mjs.map +0 -1
|
@@ -6,6 +6,9 @@ import {
|
|
|
6
6
|
useAssertWrappedByClerkProvider,
|
|
7
7
|
useIsomorphicClerkContext
|
|
8
8
|
} from "./chunk-RXA3BK2T.mjs";
|
|
9
|
+
import {
|
|
10
|
+
define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default
|
|
11
|
+
} from "./chunk-E5QRIS4Z.mjs";
|
|
9
12
|
|
|
10
13
|
// src/components/controlComponents.tsx
|
|
11
14
|
import { deprecated } from "@clerk/shared/deprecated";
|
|
@@ -137,6 +140,49 @@ var MultisessionAppSupport = ({ children }) => {
|
|
|
137
140
|
return /* @__PURE__ */ React.createElement(React.Fragment, { key: session ? session.id : "no-users" }, children);
|
|
138
141
|
};
|
|
139
142
|
|
|
143
|
+
// src/utils/versionCheck.ts
|
|
144
|
+
import React2 from "react";
|
|
145
|
+
function parseVersion(version) {
|
|
146
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
147
|
+
if (!match) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
const [, majorStr, minorStr, patchStr] = match;
|
|
151
|
+
return {
|
|
152
|
+
major: parseInt(majorStr, 10),
|
|
153
|
+
minor: parseInt(minorStr, 10),
|
|
154
|
+
patch: parseInt(patchStr, 10)
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function checkVersionAgainstBounds(version, bounds) {
|
|
158
|
+
const { major, minor, patch } = version;
|
|
159
|
+
return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {
|
|
160
|
+
if (major !== bMajor) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
if (maxMinor === -1) {
|
|
164
|
+
return minor > minMinor || minor === minMinor && patch >= minPatch;
|
|
165
|
+
} else {
|
|
166
|
+
return minor === maxMinor && patch >= minPatch;
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function isVersionCompatible(version, bounds) {
|
|
171
|
+
const parsed = parseVersion(version);
|
|
172
|
+
if (!parsed) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
return checkVersionAgainstBounds(parsed, bounds);
|
|
176
|
+
}
|
|
177
|
+
function computeReactVersionCompatibility() {
|
|
178
|
+
try {
|
|
179
|
+
return isVersionCompatible(React2.version, define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default);
|
|
180
|
+
} catch {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
var IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();
|
|
185
|
+
|
|
140
186
|
export {
|
|
141
187
|
ClerkLoaded,
|
|
142
188
|
ClerkLoading,
|
|
@@ -150,6 +196,7 @@ export {
|
|
|
150
196
|
RedirectToOrganizationProfile,
|
|
151
197
|
RedirectToCreateOrganization,
|
|
152
198
|
AuthenticateWithRedirectCallback,
|
|
153
|
-
MultisessionAppSupport
|
|
199
|
+
MultisessionAppSupport,
|
|
200
|
+
IS_REACT_SHARED_VARIANT_COMPATIBLE
|
|
154
201
|
};
|
|
155
|
-
//# sourceMappingURL=chunk-
|
|
202
|
+
//# sourceMappingURL=chunk-BD6P2PRO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/controlComponents.tsx","../src/contexts/SessionContext.tsx","../src/utils/versionCheck.ts"],"sourcesContent":["import { deprecated } from '@clerk/shared/deprecated';\nimport type { HandleOAuthCallbackParams, PendingSessionOptions, ShowWhenCondition } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useSessionContext } from '../contexts/SessionContext';\nimport { useAuth } from '../hooks';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\nimport type { RedirectToSignInProps, RedirectToSignUpProps, RedirectToTasksProps, WithClerkProp } from '../types';\nimport { withClerk } from './withClerk';\n\nexport const ClerkLoaded = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkLoaded');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (!isomorphicClerk.loaded) {\n return null;\n }\n return children;\n};\n\nexport const ClerkLoading = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkLoading');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'loading') {\n return null;\n }\n return children;\n};\n\nexport const ClerkFailed = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkFailed');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'error') {\n return null;\n }\n return children;\n};\n\nexport const ClerkDegraded = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkDegraded');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'degraded') {\n return null;\n }\n return children;\n};\n\nexport type ShowProps = React.PropsWithChildren<\n {\n fallback?: React.ReactNode;\n when: ShowWhenCondition;\n } & PendingSessionOptions\n>;\n\n/**\n * Use `<Show/>` to conditionally render content based on user authorization or sign-in state.\n * Returns `null` while auth is loading. Set `treatPendingAsSignedOut` to treat\n * pending sessions as signed out during that period.\n *\n * The `when` prop supports:\n * - `\"signed-in\"` or `\"signed-out\"` shorthands\n * - Authorization descriptors (e.g., `{ permission: \"org:billing:manage\" }`, `{ role: \"admin\" }`)\n * - A predicate function `(has) => boolean` that receives the `has` helper\n *\n * @example\n * ```tsx\n * <Show when={{ permission: \"org:billing:manage\" }} fallback={<p>Unauthorized</p>}>\n * <BillingSettings />\n * </Show>\n *\n * <Show when={{ role: \"admin\" }}>\n * <AdminPanel />\n * </Show>\n *\n * <Show when={(has) => has({ permission: \"org:read\" }) && isFeatureEnabled}>\n * <ProtectedFeature />\n * </Show>\n * ```\n *\n */\nexport const Show = ({ children, fallback, treatPendingAsSignedOut, when }: ShowProps) => {\n useAssertWrappedByClerkProvider('Show');\n\n const { has, isLoaded, userId } = useAuth({ treatPendingAsSignedOut });\n\n if (!isLoaded) {\n return null;\n }\n\n const resolvedWhen = when;\n const authorized = children;\n const unauthorized = fallback ?? null;\n\n if (resolvedWhen === 'signed-out') {\n return userId ? unauthorized : authorized;\n }\n\n if (!userId) {\n return unauthorized;\n }\n\n if (resolvedWhen === 'signed-in') {\n return authorized;\n }\n\n if (checkAuthorization(resolvedWhen, has)) {\n return authorized;\n }\n\n return unauthorized;\n};\n\nfunction checkAuthorization(\n when: Exclude<ShowWhenCondition, 'signed-in' | 'signed-out'>,\n has: NonNullable<ReturnType<typeof useAuth>['has']>,\n): boolean {\n if (typeof when === 'function') {\n return when(has);\n }\n return has(when);\n}\n\nexport const RedirectToSignIn = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignInProps>) => {\n const { client, session } = clerk;\n\n const hasSignedInSessions = (client.signedInSessions?.length ?? 0) > 0;\n\n React.useEffect(() => {\n if (session === null && hasSignedInSessions) {\n void clerk.redirectToAfterSignOut();\n } else {\n void clerk.redirectToSignIn(props);\n }\n }, []);\n\n return null;\n}, 'RedirectToSignIn');\n\nexport const RedirectToSignUp = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignUpProps>) => {\n React.useEffect(() => {\n void clerk.redirectToSignUp(props);\n }, []);\n\n return null;\n}, 'RedirectToSignUp');\n\nexport const RedirectToTasks = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToTasksProps>) => {\n React.useEffect(() => {\n void clerk.redirectToTasks(props);\n }, []);\n\n return null;\n}, 'RedirectToTasks');\n\n/**\n * @function\n * @deprecated Use [`redirectToUserProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-user-profile) instead.\n */\nexport const RedirectToUserProfile = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToUserProfile', 'Use the `redirectToUserProfile()` method instead.');\n void clerk.redirectToUserProfile();\n }, []);\n\n return null;\n}, 'RedirectToUserProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToOrganizationProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-organization-profile) instead.\n */\nexport const RedirectToOrganizationProfile = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToOrganizationProfile', 'Use the `redirectToOrganizationProfile()` method instead.');\n void clerk.redirectToOrganizationProfile();\n }, []);\n\n return null;\n}, 'RedirectToOrganizationProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToCreateOrganization()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-create-organization) instead.\n */\nexport const RedirectToCreateOrganization = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToCreateOrganization', 'Use the `redirectToCreateOrganization()` method instead.');\n void clerk.redirectToCreateOrganization();\n }, []);\n\n return null;\n}, 'RedirectToCreateOrganization');\n\nexport const AuthenticateWithRedirectCallback = withClerk(\n ({ clerk, ...handleRedirectCallbackParams }: WithClerkProp<HandleOAuthCallbackParams>) => {\n React.useEffect(() => {\n void clerk.handleRedirectCallback(handleRedirectCallbackParams);\n }, []);\n\n return null;\n },\n 'AuthenticateWithRedirectCallback',\n);\n\nexport const MultisessionAppSupport = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('MultisessionAppSupport');\n\n const session = useSessionContext();\n return <React.Fragment key={session ? session.id : 'no-users'}>{children}</React.Fragment>;\n};\n","export { SessionContext, useSessionContext } from '@clerk/shared/react';\n","import React from 'react';\n\n// Version bounds format: [major, minMinor, maxMinor, minPatch]\n// - maxMinor === -1 means \"any minor\" (caret range, e.g., ^18.0.0)\n// - maxMinor === minMinor means \"same minor only\" (tilde range, e.g., ~19.0.3)\nexport type VersionBounds = [major: number, minMinor: number, maxMinor: number, minPatch: number];\n\ndeclare const __CLERK_UI_SUPPORTED_REACT_BOUNDS__: VersionBounds[];\n\n/**\n * Parses a version string into major, minor, and patch numbers.\n * Returns null if the version string cannot be parsed.\n *\n * @example\n * parseVersion(\"18.3.1\") // { major: 18, minor: 3, patch: 1 }\n * parseVersion(\"19.0.0-rc.1\") // { major: 19, minor: 0, patch: 0 }\n * parseVersion(\"invalid\") // null\n */\nexport function parseVersion(version: string): { major: number; minor: number; patch: number } | null {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.(\\d+)/);\n if (!match) {\n return null;\n }\n\n const [, majorStr, minorStr, patchStr] = match;\n return {\n major: parseInt(majorStr, 10),\n minor: parseInt(minorStr, 10),\n patch: parseInt(patchStr, 10),\n };\n}\n\n/**\n * Checks if a parsed version satisfies the given version bounds.\n *\n * @param version - The parsed version to check\n * @param bounds - Array of version bounds to check against\n * @returns true if the version satisfies any of the bounds\n */\nexport function checkVersionAgainstBounds(\n version: { major: number; minor: number; patch: number },\n bounds: VersionBounds[],\n): boolean {\n const { major, minor, patch } = version;\n\n return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {\n if (major !== bMajor) {\n return false;\n }\n\n if (maxMinor === -1) {\n // Caret range: any minor >= minMinor, with patch check for minMinor\n return minor > minMinor || (minor === minMinor && patch >= minPatch);\n } else {\n // Tilde range: specific minor only\n return minor === maxMinor && patch >= minPatch;\n }\n });\n}\n\n/**\n * Checks if a version string is compatible with the given bounds.\n * This is a convenience function that combines parsing and checking.\n *\n * @param version - The version string to check (e.g., \"18.3.1\")\n * @param bounds - Array of version bounds to check against\n * @returns true if the version is compatible, false otherwise\n */\nexport function isVersionCompatible(version: string, bounds: VersionBounds[]): boolean {\n const parsed = parseVersion(version);\n if (!parsed) {\n return false;\n }\n return checkVersionAgainstBounds(parsed, bounds);\n}\n\n/**\n * Checks if the host application's React version is compatible with @clerk/ui's shared variant.\n * The shared variant expects React to be provided via globalThis.__clerkSharedModules,\n * so we need to ensure the host's React version matches what @clerk/ui was built against.\n *\n * This function is evaluated once at module load time.\n */\nfunction computeReactVersionCompatibility(): boolean {\n try {\n return isVersionCompatible(React.version, __CLERK_UI_SUPPORTED_REACT_BOUNDS__);\n } catch {\n // If we can't determine compatibility, fall back to non-shared variant\n return false;\n }\n}\n\n/**\n * Whether the host React version is compatible with the shared @clerk/ui variant.\n * This is computed once at module load time for optimal performance.\n */\nexport const IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();\n"],"mappings":"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","names":["React"]}
|
package/dist/index.js
CHANGED
|
@@ -2050,7 +2050,7 @@ if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") {
|
|
|
2050
2050
|
}
|
|
2051
2051
|
var SDK_METADATA = {
|
|
2052
2052
|
name: "@clerk/react",
|
|
2053
|
-
version: "6.0.0-snapshot.
|
|
2053
|
+
version: "6.0.0-snapshot.v20260122040150",
|
|
2054
2054
|
environment: process.env.NODE_ENV
|
|
2055
2055
|
};
|
|
2056
2056
|
var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn;
|
package/dist/index.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
ClerkFailed,
|
|
5
5
|
ClerkLoaded,
|
|
6
6
|
ClerkLoading,
|
|
7
|
+
IS_REACT_SHARED_VARIANT_COMPATIBLE,
|
|
7
8
|
RedirectToCreateOrganization,
|
|
8
9
|
RedirectToOrganizationProfile,
|
|
9
10
|
RedirectToSignIn,
|
|
@@ -11,7 +12,7 @@ import {
|
|
|
11
12
|
RedirectToTasks,
|
|
12
13
|
RedirectToUserProfile,
|
|
13
14
|
Show
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-BD6P2PRO.mjs";
|
|
15
16
|
import {
|
|
16
17
|
APIKeys,
|
|
17
18
|
CreateOrganization,
|
|
@@ -66,8 +67,7 @@ import {
|
|
|
66
67
|
__privateAdd,
|
|
67
68
|
__privateGet,
|
|
68
69
|
__privateMethod,
|
|
69
|
-
__privateSet
|
|
70
|
-
define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default
|
|
70
|
+
__privateSet
|
|
71
71
|
} from "./chunk-E5QRIS4Z.mjs";
|
|
72
72
|
|
|
73
73
|
// src/polyfills.ts
|
|
@@ -246,7 +246,7 @@ var SignUpButton = withClerk(
|
|
|
246
246
|
);
|
|
247
247
|
|
|
248
248
|
// src/contexts/ClerkProvider.tsx
|
|
249
|
-
import
|
|
249
|
+
import React6 from "react";
|
|
250
250
|
|
|
251
251
|
// src/contexts/ClerkContextProvider.tsx
|
|
252
252
|
import { deriveState } from "@clerk/shared/deriveState";
|
|
@@ -257,7 +257,7 @@ import {
|
|
|
257
257
|
SessionContext,
|
|
258
258
|
UserContext
|
|
259
259
|
} from "@clerk/shared/react";
|
|
260
|
-
import
|
|
260
|
+
import React5 from "react";
|
|
261
261
|
|
|
262
262
|
// src/isomorphicClerk.ts
|
|
263
263
|
import { inBrowser as inBrowser2 } from "@clerk/shared/browser";
|
|
@@ -662,7 +662,7 @@ if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") {
|
|
|
662
662
|
}
|
|
663
663
|
var SDK_METADATA = {
|
|
664
664
|
name: "@clerk/react",
|
|
665
|
-
version: "6.0.0-snapshot.
|
|
665
|
+
version: "6.0.0-snapshot.v20260122040150",
|
|
666
666
|
environment: process.env.NODE_ENV
|
|
667
667
|
};
|
|
668
668
|
var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn;
|
|
@@ -1976,71 +1976,28 @@ waitForClerkJS_fn = function() {
|
|
|
1976
1976
|
__privateAdd(_IsomorphicClerk, _instance);
|
|
1977
1977
|
var IsomorphicClerk = _IsomorphicClerk;
|
|
1978
1978
|
|
|
1979
|
-
// src/utils/versionCheck.ts
|
|
1980
|
-
import React5 from "react";
|
|
1981
|
-
function parseVersion(version2) {
|
|
1982
|
-
const match = version2.match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
1983
|
-
if (!match) {
|
|
1984
|
-
return null;
|
|
1985
|
-
}
|
|
1986
|
-
const [, majorStr, minorStr, patchStr] = match;
|
|
1987
|
-
return {
|
|
1988
|
-
major: parseInt(majorStr, 10),
|
|
1989
|
-
minor: parseInt(minorStr, 10),
|
|
1990
|
-
patch: parseInt(patchStr, 10)
|
|
1991
|
-
};
|
|
1992
|
-
}
|
|
1993
|
-
function checkVersionAgainstBounds(version2, bounds) {
|
|
1994
|
-
const { major, minor, patch } = version2;
|
|
1995
|
-
return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {
|
|
1996
|
-
if (major !== bMajor) {
|
|
1997
|
-
return false;
|
|
1998
|
-
}
|
|
1999
|
-
if (maxMinor === -1) {
|
|
2000
|
-
return minor > minMinor || minor === minMinor && patch >= minPatch;
|
|
2001
|
-
} else {
|
|
2002
|
-
return minor === maxMinor && patch >= minPatch;
|
|
2003
|
-
}
|
|
2004
|
-
});
|
|
2005
|
-
}
|
|
2006
|
-
function isVersionCompatible(version2, bounds) {
|
|
2007
|
-
const parsed = parseVersion(version2);
|
|
2008
|
-
if (!parsed) {
|
|
2009
|
-
return false;
|
|
2010
|
-
}
|
|
2011
|
-
return checkVersionAgainstBounds(parsed, bounds);
|
|
2012
|
-
}
|
|
2013
|
-
function computeReactVersionCompatibility() {
|
|
2014
|
-
try {
|
|
2015
|
-
return isVersionCompatible(React5.version, define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default);
|
|
2016
|
-
} catch {
|
|
2017
|
-
return false;
|
|
2018
|
-
}
|
|
2019
|
-
}
|
|
2020
|
-
var IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();
|
|
2021
|
-
|
|
2022
1979
|
// src/contexts/ClerkContextProvider.tsx
|
|
2023
1980
|
function ClerkContextProvider(props) {
|
|
2024
1981
|
const { isomorphicClerkOptions, initialState, children } = props;
|
|
2025
1982
|
const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions);
|
|
2026
|
-
const [state, setState] =
|
|
1983
|
+
const [state, setState] = React5.useState({
|
|
2027
1984
|
client: clerk.client,
|
|
2028
1985
|
session: clerk.session,
|
|
2029
1986
|
user: clerk.user,
|
|
2030
1987
|
organization: clerk.organization
|
|
2031
1988
|
});
|
|
2032
|
-
|
|
1989
|
+
React5.useEffect(() => {
|
|
2033
1990
|
return clerk.addListener((e) => setState({ ...e }));
|
|
2034
1991
|
}, []);
|
|
2035
1992
|
const derivedState = deriveState(clerk.loaded, state, initialState);
|
|
2036
|
-
const clerkCtx =
|
|
1993
|
+
const clerkCtx = React5.useMemo(
|
|
2037
1994
|
() => ({ value: clerk }),
|
|
2038
1995
|
[
|
|
2039
1996
|
// Only update the clerk reference on status change
|
|
2040
1997
|
clerkStatus
|
|
2041
1998
|
]
|
|
2042
1999
|
);
|
|
2043
|
-
const clientCtx =
|
|
2000
|
+
const clientCtx = React5.useMemo(() => ({ value: state.client }), [state.client]);
|
|
2044
2001
|
const {
|
|
2045
2002
|
sessionId,
|
|
2046
2003
|
sessionStatus,
|
|
@@ -2056,7 +2013,7 @@ function ClerkContextProvider(props) {
|
|
|
2056
2013
|
orgPermissions,
|
|
2057
2014
|
factorVerificationAge
|
|
2058
2015
|
} = derivedState;
|
|
2059
|
-
const authCtx =
|
|
2016
|
+
const authCtx = React5.useMemo(() => {
|
|
2060
2017
|
const value = {
|
|
2061
2018
|
sessionId,
|
|
2062
2019
|
sessionStatus,
|
|
@@ -2071,9 +2028,9 @@ function ClerkContextProvider(props) {
|
|
|
2071
2028
|
};
|
|
2072
2029
|
return { value };
|
|
2073
2030
|
}, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims == null ? void 0 : sessionClaims.__raw]);
|
|
2074
|
-
const sessionCtx =
|
|
2075
|
-
const userCtx =
|
|
2076
|
-
const organizationCtx =
|
|
2031
|
+
const sessionCtx = React5.useMemo(() => ({ value: session }), [sessionId, session]);
|
|
2032
|
+
const userCtx = React5.useMemo(() => ({ value: user }), [userId, user]);
|
|
2033
|
+
const organizationCtx = React5.useMemo(() => {
|
|
2077
2034
|
const value = {
|
|
2078
2035
|
organization
|
|
2079
2036
|
};
|
|
@@ -2081,7 +2038,7 @@ function ClerkContextProvider(props) {
|
|
|
2081
2038
|
}, [orgId, organization]);
|
|
2082
2039
|
return (
|
|
2083
2040
|
// @ts-expect-error value passed is of type IsomorphicClerk where the context expects LoadedClerk
|
|
2084
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ React5.createElement(IsomorphicClerkContext.Provider, { value: clerkCtx }, /* @__PURE__ */ React5.createElement(ClientContext.Provider, { value: clientCtx }, /* @__PURE__ */ React5.createElement(SessionContext.Provider, { value: sessionCtx }, /* @__PURE__ */ React5.createElement(OrganizationProvider, { ...organizationCtx.value }, /* @__PURE__ */ React5.createElement(AuthContext.Provider, { value: authCtx }, /* @__PURE__ */ React5.createElement(UserContext.Provider, { value: userCtx }, /* @__PURE__ */ React5.createElement(
|
|
2085
2042
|
CheckoutProvider,
|
|
2086
2043
|
{
|
|
2087
2044
|
value: void 0
|
|
@@ -2092,22 +2049,22 @@ function ClerkContextProvider(props) {
|
|
|
2092
2049
|
}
|
|
2093
2050
|
var DEFAULT_CLERK_UI_VARIANT = IS_REACT_SHARED_VARIANT_COMPATIBLE ? "shared" : "";
|
|
2094
2051
|
var useLoadedIsomorphicClerk = (options) => {
|
|
2095
|
-
const optionsWithDefaults =
|
|
2052
|
+
const optionsWithDefaults = React5.useMemo(
|
|
2096
2053
|
() => ({
|
|
2097
2054
|
clerkUiVariant: DEFAULT_CLERK_UI_VARIANT,
|
|
2098
2055
|
...options
|
|
2099
2056
|
}),
|
|
2100
2057
|
[options]
|
|
2101
2058
|
);
|
|
2102
|
-
const isomorphicClerkRef =
|
|
2103
|
-
const [clerkStatus, setClerkStatus] =
|
|
2104
|
-
|
|
2059
|
+
const isomorphicClerkRef = React5.useRef(IsomorphicClerk.getOrCreateInstance(optionsWithDefaults));
|
|
2060
|
+
const [clerkStatus, setClerkStatus] = React5.useState(isomorphicClerkRef.current.status);
|
|
2061
|
+
React5.useEffect(() => {
|
|
2105
2062
|
void isomorphicClerkRef.current.__internal_updateProps({ appearance: options.appearance });
|
|
2106
2063
|
}, [options.appearance]);
|
|
2107
|
-
|
|
2064
|
+
React5.useEffect(() => {
|
|
2108
2065
|
void isomorphicClerkRef.current.__internal_updateProps({ options });
|
|
2109
2066
|
}, [options.localization]);
|
|
2110
|
-
|
|
2067
|
+
React5.useEffect(() => {
|
|
2111
2068
|
isomorphicClerkRef.current.on("status", setClerkStatus);
|
|
2112
2069
|
return () => {
|
|
2113
2070
|
if (isomorphicClerkRef.current) {
|
|
@@ -2123,7 +2080,7 @@ var useLoadedIsomorphicClerk = (options) => {
|
|
|
2123
2080
|
function ClerkProviderBase(props) {
|
|
2124
2081
|
const { initialState, children, ...restIsomorphicClerkOptions } = props;
|
|
2125
2082
|
const isomorphicClerkOptions = restIsomorphicClerkOptions;
|
|
2126
|
-
return /* @__PURE__ */
|
|
2083
|
+
return /* @__PURE__ */ React6.createElement(
|
|
2127
2084
|
ClerkContextProvider,
|
|
2128
2085
|
{
|
|
2129
2086
|
initialState,
|