1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.ClerkContextWrapper = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
6 | const IsomorphicClerkContext_1 = require("./IsomorphicClerkContext");
|
7 | const ClientContext_1 = require("./ClientContext");
|
8 | const SessionContext_1 = require("./SessionContext");
|
9 | const UserContext_1 = require("./UserContext");
|
10 | function 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 | }
|
31 | exports.ClerkContextWrapper = ClerkContextWrapper;
|
32 |
|
\ | No newline at end of file |