UNPKG

@authsignal/nextjs-helpers

Version:
39 lines (32 loc) 1.28 kB
import dynamic from 'next/dynamic.js'; import React, { useContext } from 'react'; import { Authsignal } from '@authsignal/browser'; const AuthsignalContext = React.createContext(undefined); const useAuthsignal = () => { const context = useContext(AuthsignalContext); if (context === undefined) { throw new Error("useAuthsignal must be used inside AuthsignalProvider"); } return context; }; const AuthsignalProvider$1 = dynamic(() => Promise.resolve().then(function () { return provider; }).then((mod) => mod.AuthsignalProvider), { ssr: false }); function AuthsignalProvider({ children }) { const client = getClient(); return React.createElement(AuthsignalContext.Provider, { value: client }, children); } let _client = null; function getClient() { if (_client === null) { const publishableKey = process.env.NEXT_PUBLIC_AUTHSIGNAL_PUBLISHABLE_KEY; if (!publishableKey) { throw new Error("NEXT_PUBLIC_AUTHSIGNAL_PUBLISHABLE_KEY is not set"); } _client = new Authsignal({ publishableKey }); } return _client; } var provider = /*#__PURE__*/Object.freeze({ __proto__: null, AuthsignalProvider: AuthsignalProvider }); export { AuthsignalProvider$1 as AuthsignalProvider, useAuthsignal };