diff --git a/packages/build/src/build/buildAuth/buildAuthPlugins.js b/packages/build/src/build/buildAuth/buildAuthPlugins.js index 6f6285b73..76a36bef7 100644 --- a/packages/build/src/build/buildAuth/buildAuthPlugins.js +++ b/packages/build/src/build/buildAuth/buildAuthPlugins.js @@ -19,7 +19,7 @@ function buildAuthPlugins({ components, context }) { if (type.isArray(components.auth.providers)) { components.auth.providers.forEach((provider) => { if (type.isUndefined(provider.id)) { - throw new Error(`Connection id missing.`); + throw new Error(`Auth provider id missing.`); } if (!type.isString(provider.id)) { throw new Error( diff --git a/packages/client/src/Client.js b/packages/client/src/Client.js index cc3e22626..e53997bf6 100644 --- a/packages/client/src/Client.js +++ b/packages/client/src/Client.js @@ -23,8 +23,17 @@ import ProgressBarController from './ProgressBarController.js'; import initLowdefyContext from './initLowdefyContext.js'; -const Client = ({ auth, Components, config, router, stage, types, window }) => { - const lowdefy = initLowdefyContext({ auth, Components, config, router, types, stage, window }); +const Client = ({ auth, Components, config, router, session, stage, types, window }) => { + const lowdefy = initLowdefyContext({ + auth, + Components, + config, + router, + types, + session, + stage, + window, + }); return ( { const router = useRouter(); + const { data: session, status } = useSession(); + + // If session is passed to SessionProvider from getServerSideProps + // we won't have a loading state here. + // But 404 uses getStaticProps so we have this for 404. + if (status === 'loading') { + return ''; + } + return ( { rootConfig, }} router={router} + session={session} types={{ actions, blocks, diff --git a/packages/server/pages/[pageId].js b/packages/server/pages/[pageId].js index 7564fe470..76a3b8077 100644 --- a/packages/server/pages/[pageId].js +++ b/packages/server/pages/[pageId].js @@ -46,6 +46,7 @@ export async function getServerSideProps(context) { props: { pageConfig, rootConfig, + session, }, }; } diff --git a/packages/server/pages/_app.js b/packages/server/pages/_app.js index adff5f43d..8e426bb99 100644 --- a/packages/server/pages/_app.js +++ b/packages/server/pages/_app.js @@ -16,12 +16,18 @@ import React from 'react'; import dynamic from 'next/dynamic'; +import { SessionProvider } from 'next-auth/react'; // Must be in _app due to next specifications. import '../build/plugins/styles.less'; -function App({ Component, pageProps }) { - return ; +// TODO: SessionProvider requires basebath +function App({ Component, pageProps: { session, ...pageProps } }) { + return ( + + + + ); } const DynamicApp = dynamic(() => Promise.resolve(App), { diff --git a/packages/server/pages/index.js b/packages/server/pages/index.js index c0b7f1295..508bb196f 100644 --- a/packages/server/pages/index.js +++ b/packages/server/pages/index.js @@ -49,6 +49,7 @@ export async function getServerSideProps(context) { props: { pageConfig, rootConfig, + session, }, }; }