@clerk/clerk-react
Version:
Clerk.dev React library
25 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClerkProvider = void 0;
const tslib_1 = require("tslib");
const react_1 = (0, tslib_1.__importStar)(require("react"));
const isomorphicClerk_1 = (0, tslib_1.__importDefault)(require("../isomorphicClerk"));
const utils_1 = require("../utils");
const errors_1 = require("../errors");
const ClerkContextWrapper_1 = require("./ClerkContextWrapper");
const StructureContext_1 = require("./StructureContext");
function ClerkProviderBase(props) {
const clerk = (0, react_1.useMemo)(() => {
const { frontendApi = '', Clerk: ClerkConstructor } = props, rest = (0, tslib_1.__rest)(props, ["frontendApi", "Clerk"]);
return new isomorphicClerk_1.default(frontendApi, rest, ClerkConstructor);
}, []);
const [clerkLoaded, setClerkLoaded] = (0, react_1.useState)(false);
(0, react_1.useEffect)(() => {
void clerk.loadClerkJS().then(() => setClerkLoaded(true));
}, []);
return (react_1.default.createElement(StructureContext_1.StructureContext.Provider, { value: StructureContext_1.StructureContextStates.noGuarantees },
clerk instanceof isomorphicClerk_1.default && clerk.ssrData && (react_1.default.createElement("script", { type: 'application/json', "data-clerk": 'SSR', dangerouslySetInnerHTML: { __html: clerk.ssrData } })),
react_1.default.createElement(ClerkContextWrapper_1.ClerkContextWrapper, { isomorphicClerk: clerk, clerkLoaded: clerkLoaded }, props.children)));
}
exports.ClerkProvider = (0, utils_1.withMaxAllowedInstancesGuard)(ClerkProviderBase, 'ClerkProvider', errors_1.multipleClerkProvidersError);
//# sourceMappingURL=ClerkProvider.js.map