UNPKG

@authsignal/nextjs-helpers

Version:
49 lines (38 loc) 1.69 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var dynamic = require('next/dynamic.js'); var React = require('react'); var browser = require('@authsignal/browser'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var dynamic__default = /*#__PURE__*/_interopDefaultLegacy(dynamic); var React__default = /*#__PURE__*/_interopDefaultLegacy(React); const AuthsignalContext = React__default["default"].createContext(undefined); const useAuthsignal = () => { const context = React.useContext(AuthsignalContext); if (context === undefined) { throw new Error("useAuthsignal must be used inside AuthsignalProvider"); } return context; }; const AuthsignalProvider$1 = dynamic__default["default"](() => Promise.resolve().then(function () { return provider; }).then((mod) => mod.AuthsignalProvider), { ssr: false }); function AuthsignalProvider({ children }) { const client = getClient(); return React__default["default"].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 browser.Authsignal({ publishableKey }); } return _client; } var provider = /*#__PURE__*/Object.freeze({ __proto__: null, AuthsignalProvider: AuthsignalProvider }); exports.AuthsignalProvider = AuthsignalProvider$1; exports.useAuthsignal = useAuthsignal;