UNPKG

convex

Version:

Client for the Convex Cloud

99 lines (98 loc) 3.56 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var ConvexProviderWithAuth0_exports = {}; __export(ConvexProviderWithAuth0_exports, { ConvexProviderWithAuth0: () => ConvexProviderWithAuth0 }); module.exports = __toCommonJS(ConvexProviderWithAuth0_exports); var import_auth0_react = require("@auth0/auth0-react"); var import_react = __toESM(require("react")); var import_react2 = require("../react/index.js"); const ConvexProviderWithAuth0 = ({ children, client, authInfo, loading, loggedOut }) => { if (!authInfo) { throw new Error( "ConvexProviderWithAuth0 component requires authInfo. Run `npx convex auth add` to register your auth provider and pass config.authInfo[0] as the authInfo prop." ); } let domain = authInfo.domain; if (domain.startsWith("https://")) { domain = domain.slice(8); } if (domain.endsWith("/")) { domain = domain.slice(0, -1); } return import_react.default.createElement( import_auth0_react.Auth0Provider, { domain, clientId: authInfo.applicationID, redirectUri: typeof window === "undefined" ? void 0 : window.location.origin, cacheLocation: "localstorage" }, import_react.default.createElement( ConvexProviderUsingAuth0, { client, loading, loggedOut }, children ) ); }; function ConvexProviderUsingAuth0({ children, client, loading, loggedOut }) { const { isAuthenticated, isLoading, getIdTokenClaims, loginWithRedirect } = (0, import_auth0_react.useAuth0)(); const [clientAuthed, setClientAuthed] = (0, import_react.useState)(false); loggedOut = loggedOut || import_react.default.createElement("button", { onClick: loginWithRedirect }, "Log in"); loading = loading || import_react.default.createElement(import_react.default.Fragment, null, null); (0, import_react.useEffect)(() => { async function setAuth() { const claims = await getIdTokenClaims(); const token = claims.__raw; client.setAuth(token); setClientAuthed(true); } if (isAuthenticated) { void setAuth(); return () => client.clearAuth(); } }, [isAuthenticated, getIdTokenClaims, isLoading, client]); if (isLoading || isAuthenticated && !clientAuthed) { return loading; } else if (!isAuthenticated) { return loggedOut; } return import_react.default.createElement( import_react2.ConvexProvider, { client }, children ); } //# sourceMappingURL=ConvexProviderWithAuth0.js.map