@clerk/chrome-extension
Version:
Clerk SDK for Chrome extensions
61 lines • 1.65 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import Clerk from "@clerk/clerk-js";
import { __internal__setErrorThrowerOptions, ClerkProvider as ClerkReactProvider } from "@clerk/clerk-react";
import React from "react";
import { ChromeStorageCache } from "./cache";
import { buildClerk } from "./singleton";
Clerk.sdkMetadata = {
name: "@clerk/chrome-extension",
version: "0.4.12"
};
__internal__setErrorThrowerOptions({
packageName: "@clerk/chrome-extension"
});
const WebSSOClerkProvider = (props) => {
const { children, tokenCache: runtimeTokenCache, ...rest } = props;
const { publishableKey = "" } = props;
const [clerkInstance, setClerkInstance] = React.useState(null);
const tokenCache = runtimeTokenCache || ChromeStorageCache;
React.useEffect(() => {
void (async () => {
setClerkInstance(await buildClerk({ publishableKey, tokenCache }));
})();
}, []);
if (!clerkInstance) {
return null;
}
return /* @__PURE__ */ jsx(
ClerkReactProvider,
{
...rest,
Clerk: clerkInstance,
standardBrowser: false,
children
}
);
};
const StandaloneClerkProvider = (props) => {
const { children, ...rest } = props;
return /* @__PURE__ */ jsx(
ClerkReactProvider,
{
...rest,
Clerk,
children
}
);
};
function ClerkProvider(props) {
const { tokenCache, syncSessionWithTab, ...rest } = props;
return syncSessionWithTab ? /* @__PURE__ */ jsx(
WebSSOClerkProvider,
{
...props,
tokenCache
}
) : /* @__PURE__ */ jsx(StandaloneClerkProvider, { ...rest });
}
export {
ClerkProvider
};
//# sourceMappingURL=ClerkProvider.js.map