@authsignal/nextjs-helpers
Version:
## Installation
39 lines (32 loc) • 1.28 kB
JavaScript
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 };