UNPKG

1.87 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ClerkContextWrapper = void 0;
4const tslib_1 = require("tslib");
5const react_1 = (0, tslib_1.__importDefault)(require("react"));
6const IsomorphicClerkContext_1 = require("./IsomorphicClerkContext");
7const ClientContext_1 = require("./ClientContext");
8const SessionContext_1 = require("./SessionContext");
9const UserContext_1 = require("./UserContext");
10function ClerkContextWrapper({ isomorphicClerk, children, clerkLoaded, }) {
11 const clerk = isomorphicClerk;
12 const [state, setState] = react_1.default.useState({
13 client: clerk.client,
14 session: clerk.session,
15 user: clerk.user,
16 });
17 react_1.default.useEffect(() => {
18 return clerk.addListener(e => setState(Object.assign({}, e)));
19 }, []);
20 const { client, session, user } = state;
21 const clerkCtx = react_1.default.useMemo(() => ({ value: clerk }), [clerkLoaded]);
22 const clientCtx = react_1.default.useMemo(() => ({ value: client }), [client]);
23 const sessionCtx = react_1.default.useMemo(() => ({ value: session }), [session]);
24 const userCtx = react_1.default.useMemo(() => ({ value: user }), [user]);
25 return (react_1.default.createElement(IsomorphicClerkContext_1.IsomorphicClerkContext.Provider, { value: clerkCtx },
26 react_1.default.createElement(ClientContext_1.ClientContext.Provider, { value: clientCtx },
27 react_1.default.createElement(SessionContext_1.SessionContext.Provider, { value: sessionCtx },
28 react_1.default.createElement(UserContext_1.UserContext.Provider, { value: userCtx },
29 react_1.default.createElement(react_1.default.Fragment, { key: session ? session.id : 'no-users' }, children))))));
30}
31exports.ClerkContextWrapper = ClerkContextWrapper;
32//# sourceMappingURL=ClerkContextWrapper.js.map
\No newline at end of file