From aa2b060f071cf12cff617ed5f461089938c9261f Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Wed, 11 Sep 2024 20:14:02 +0530 Subject: [PATCH 01/20] docs: Add integration, base concepts --- .../core/introduction/base-concepts.md | 173 +++++++++++ .../toolpad/core/introduction/installation.md | 76 ++--- .../toolpad/core/introduction/integration.md | 274 ++++++++++++++++++ docs/data/toolpad/core/pages.ts | 8 + docs/next-env.d.ts | 2 +- .../core/introduction/base-concepts.js | 7 + .../toolpad/core/introduction/integration.js | 7 + 7 files changed, 508 insertions(+), 39 deletions(-) create mode 100644 docs/data/toolpad/core/introduction/base-concepts.md create mode 100644 docs/data/toolpad/core/introduction/integration.md create mode 100644 docs/pages/toolpad/core/introduction/base-concepts.js create mode 100644 docs/pages/toolpad/core/introduction/integration.js diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md new file mode 100644 index 00000000000..6441ec44ea3 --- /dev/null +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -0,0 +1,173 @@ +--- +title: Toolpad Core - Base Concepts +--- + +# Base Concepts + +

Understanding the fundamental concepts of Toolpad Core to effectively integrate and use it in your projects.

+ +## Imports + +Toolpad Core components can be imported directly from the `@toolpad/core` package. This allows you to use them alongside your existing Material UI or other components. + +```tsx +import { Button } from '@mui/material'; +import { DashboardLayout } from '@toolpad/core/DashboardLayout'; +``` + +## Component Hierarchy + +The Toolpad Core library is designed to work within your existing React application structure. The key component in this hierarchy is the `AppProvider`. + +### App Provider + +The `AppProvider` acts as a bridge between your application's runtime and Toolpad components. It should wrap your entire application or the part of your application where you want to use Toolpad components. + +```tsx +import { AppProvider } from '@toolpad/core/AppProvider'; + +function MyApp({ Component, pageProps }) { + return ( + + + + ); +} +``` + +By wrapping your application with `AppProvider`, you ensure that all other Toolpad components you use have access to the necessary context and functionality. + +#### AppProvider Props + +The `AppProvider` component accepts the following props: + +- `theme`: The theme to be used by the app in light/dark mode. If you are using [Material UI with a custom theme](https://mui.com/material-ui/customization/theming/), you can directly pass it here. + + ```tsx + import { createTheme } from '@mui/material'; + import { AppProvider } from '@toolpad/core/AppProvider'; + + const customTheme = createTheme({ + cssVariables: { + colorSchemeSelector: 'data-toolpad-color-scheme', + }, + colorSchemes: { + light: { + // ... + }, + dark: { + // ... + }, + }, + }); + + function MyApp({ Component, pageProps }) { + return /* Your App */; + } + ``` + +- `branding`: Branding options for the app. + + ```tsx + import { AppProvider } from '@toolpad/core/AppProvider'; + + function MyApp({ Component, pageProps }) { + return ..; + } + ``` + +- `navigation`: The navigation structure for the app. + + ```tsx + import { ShoppingCartIcon } from '@mui/icons-material'; + import { AppProvider } from '@toolpad/core/AppProvider'; + + const NAVIGATION: Navigation = [ + { + segment: 'orders', + title: 'Orders', + icon: , + }, + ]; + + function MyApp({ Component, pageProps }) { + return ..; + } + ``` + +- `router`: Router implementation used to navigate between pages. This is the same router that you use in your application. + + :::info + Toolpad Core doesn't handle routing itself. Instead, it's designed to integrate seamlessly with your existing routing solution, whether you're using: + + - Next.js App Router + - Next.js Pages Router + - React Router + - Or any other routing library which implements the same interface + + You can pass the router implementation to the `AppProvider` component using the `router` prop. You do not need to pass this prop if you are using Next.js, since it has a file-system based router. + + ::: + +- `authentication`: Authentication implementation used inside Toolpad components. + +- `session`: Session implementation used inside Toolpad components. + + ```tsx + import { AppProvider } from '@toolpad/core/AppProvider'; + import { SessionProvider, signIn, signOut } from 'next-auth/react'; + import { auth } from '../auth'; + + function MyApp({ Component, pageProps }) { + const session = await auth(); + return ( + + + .. + + + ); + } + ``` + +It is important to note that the `AppProvider` component does not perform routing or authentication by itself. It integrates with any of your existing implementations for the same. + +:::info +The [AppProvider](/toolpad/core/react-app-provider/) page contains more details and examples of the usage of these props. +::: + +## Slots + +Toolpad Core uses slots for component customization. Slots allow you to override specific parts of a component, providing flexibility in styling and functionality. You can also pass additional props to specific slots using the `slotProps` prop. + +Here's an example using the `SignInPage` component: + +```tsx +import { SignInPage } from '@toolpad/core/SignInPage'; +function MyComponent() { + return ( + + Custom Button + + ); +} +``` + +In this example: + +- The `slots` prop allows you to replace entire parts of the component. +- The `slotProps` prop lets you pass additional props to specific slots. + +## Next Steps + +Now that you understand the basic concepts of Toolpad Core, you're ready to start integrating it into your project. Head over to the [integration docs](/toolpad/core/introduction/integration/) to learn more. diff --git a/docs/data/toolpad/core/introduction/installation.md b/docs/data/toolpad/core/introduction/installation.md index 6b93e49fbd2..6a8bc1a8bba 100644 --- a/docs/data/toolpad/core/introduction/installation.md +++ b/docs/data/toolpad/core/introduction/installation.md @@ -4,6 +4,44 @@ title: Toolpad Core - Installation # Installation +## Manual Installation + +Use your preferred package manager to install `@toolpad/core` in your project: + + + +```bash npm +npm install -S @toolpad/core +``` + +```bash yarn +yarn add @toolpad/core +``` + +```bash pnpm +pnpm add @toolpad/core +``` + + + +The Toolpad Core package has a peer dependency on `@mui/material` and `@mui/icons-material`. If you aren't using these already in your project, you can install them with: + + + +```bash npm +npm install -S @mui/material @mui/icons-material @emotion/react @emotion/styled +``` + +```bash yarn +yarn add @mui/material @mui/icons-material @emotion/react @emotion/styled +``` + +```bash pnpm +pnpm add @mui/material @mui/icons-material @emotion/react @emotion/styled +``` + + + ## Automatic Installation

Learn how to install Toolpad Core in your local environment.

@@ -74,41 +112,3 @@ yarn dev {{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/installation-1.png", "alt": "Toolpad Core entry point", "caption": "Starting with Toolpad Core", "zoom": true, "indent": 1 }} 5. Installation is complete! Begin building your project by making edits to `(dashboard/page/page.tsx`. To understand how to leverage Toolpad Core to build dashboards quickly, [see the detailed tutorial](/toolpad/core/introduction/tutorial/). - -## Manual Installation - -Use your preferred package manager to install `@toolpad/core` in your project: - - - -```bash npm -npm install -S @toolpad/core -``` - -```bash yarn -yarn add @toolpad/core -``` - -```bash pnpm -pnpm add @toolpad/core -``` - - - -The Toolpad Core package has a peer dependency on `@mui/material` and `@mui/icons-material`. If you aren't using these already in your project, you can install them with: - - - -```bash npm -npm install -S @mui/material @mui/icons-material @emotion/react @emotion/styled -``` - -```bash yarn -yarn add @mui/material @mui/icons-material @emotion/react @emotion/styled -``` - -```bash pnpm -pnpm add @mui/material @mui/icons-material @emotion/react @emotion/styled -``` - - diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md new file mode 100644 index 00000000000..08b41bd8bea --- /dev/null +++ b/docs/data/toolpad/core/introduction/integration.md @@ -0,0 +1,274 @@ +--- +title: Toolpad Core - Integration +description: How to integrate Toolpad Core into your existing project. +--- + +# Integration + +This guide will walk you through the process of adding Toolpad Core to an existing project. + +## Installation + + + +```bash npm +npm install -S @toolpad/core +``` + +```bash yarn +yarn add @toolpad/core +``` + +```bash pnpm +pnpm add @toolpad/core +``` + + + +## Next.js App Router + +Use the following steps to integrate Toolpad Core into your Next.js app: + +### 1. Wrap your application with `AppProvider` + +1. In your root layout file (e.g., `app/layout.tsx`), wrap your application with the `AppProvider`: + +```tsx title="app/layout.tsx" +import { AppProvider } from '@toolpad/core'; +import { AppRouterCacheProvider } from '@mui/material-nextjs/v14-appRouter'; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + {children} + + + ); +} +``` + +You can find details on the `AppProvider` props in the [base concepts](/toolpad/core/introduction/base-concepts/#app-provider) section. The [Material UI Next.js App Router integration](https://mui.com/material-ui/integrations/nextjs/) has more details on the `AppRouterCacheProvider`. + +### 2. Create a dashboard layout + +Create a layout file for your dashboard pages (e.g., `app/(dashboard)/layout.tsx`): + +```tsx title="app/(dashboard)/layout.tsx" +import * as React from 'react'; +import { DashboardLayout } from '@toolpad/core/DashboardLayout'; +import { PageContainer } from '@toolpad/core/PageContainer'; + +export default function DashboardPagesLayout(props: { children: React.ReactNode }) { + return ( + + {props.children} + + ); +} +``` + +The [`DashboardLayout`](/toolpad/core/react-dashboard-layout/) component provides a consistent layout for your dashboard pages, including a sidebar, navigation, and header. The [`PageContainer`](/toolpad/core/react-page-container/) component is used to wrap the page content, and provides breadcrumbs for navigation. + +### 3. Create a dashboard page + +Now you can create pages within your dashboard. For example, a home page (`app/(dashboard)/page.tsx`): + +```tsx title="app/(dashboard)/page.tsx" +import * as React from 'react'; +import Typography from '@mui/material/Typography'; + +export default function Page() { + return Welcome to a page in the dashboard!; +} +``` + +That's it! You have now integrated Toolpad Core into your Next.js app. + +### 4. (Optional) Add a second page + +Create a new page in the dashboard, for example, `app/(dashboard)/orders/page.tsx`: + +```tsx title="app/(dashboard)/orders/page.tsx" +import * as React from 'react'; +import Typography from '@mui/material/Typography'; + +export default function OrdersPage() { + return Welcome to the orders page!; +} +``` + +To add this page to the navigation, add it to the `NAVIGATION` variable: + +```ts title="app/layout.tsx" +export const NAVIGATION = [ + // ... + { + segment: 'orders', + title: 'Orders', + icon: , + }, + // ... +]; +``` + +### 5. (Optional) Set up authentication + +If you want to add authentication, you can use Auth.js with Toolpad Core. Here's an example setup: + +#### a. Install the dependencies + +```bash +npm install next-auth@beta +``` + +#### b. Create an `auth.ts` file: + +```ts title="auth.ts" +import NextAuth from 'next-auth'; +import GitHub from 'next-auth/providers/github'; +import Credentials from 'next-auth/providers/credentials'; +import type { Provider } from 'next-auth/providers'; +const providers: Provider[] = [ + GitHub({ + clientId: process.env.GITHUB_CLIENT_ID, + clientSecret: process.env.GITHUB_CLIENT_SECRET, + }), + Credentials({ + credentials: { + email: { label: 'Email Address', type: 'email' }, + password: { label: 'Password', type: 'password' }, + }, + authorize(c) { + if (c.password !== 'password') { + return null; + } + return { + id: 'test', + name: 'Test User', + email: String(c.email), + }; + }, + }), +]; + +export const providerMap = providers.map((provider) => { + if (typeof provider === 'function') { + const providerData = provider(); + return { id: providerData.id, name: providerData.name }; + } + return { id: provider.id, name: provider.name }; +}); + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers, + secret: process.env.AUTH_SECRET, + pages: { + signIn: '/auth/signin', + }, + callbacks: { + authorized({ auth: session, request: { nextUrl } }) { + const isLoggedIn = !!session?.user; + const isPublicPage = nextUrl.pathname.startsWith('/public'); + + if (isPublicPage || isLoggedIn) { + return true; + } + + return false; // Redirect unauthenticated users to login page + }, + }, +}); +``` + +:::warning + +This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [NextAuth documentation](https://authjs.dev/guides/configuring-github). + +::: + +#### c. Create a sign-in page + +Use the `SignInPage` component to add a sign-in page to your app. For example, `app/auth/signin/page.tsx`: + +```tsx title="app/auth/signin/page.tsx" +import * as React from 'react'; +import type { AuthProvider } from '@toolpad/core'; +import { SignInPage } from '@toolpad/core/SignInPage'; +import { AuthError } from 'next-auth'; +import { providerMap, signIn } from '../../../auth'; + +export default function SignIn() { + return ( + { + 'use server'; + try { + return await signIn(provider.id, { + ...(formData && { + email: formData.get('email'), + password: formData.get('password'), + }), + redirectTo: callbackUrl ?? '/', + }); + } catch (error) { + // The desired flow for successful sign in in all cases + // and unsuccessful sign in for OAuth providers will cause a `redirect`, + // and `redirect` is a throwing function, so we need to re-throw + // to allow the redirect to happen + // Source: https://github.com/vercel/next.js/issues/49298#issuecomment-1542055642 + // Detect a `NEXT_REDIRECT` error and re-throw it + if (error instanceof Error && error.message === 'NEXT_REDIRECT') { + throw error; + } + // Handle Auth.js errors + if (error instanceof AuthError) { + return { + error: + error.type === 'CredentialsSignin' + ? 'Invalid credentials.' + : 'An error with Auth.js occurred.', + type: error.type, + }; + } + // An error boundary must exist to handle unknown errors + return { + error: 'Something went wrong.', + type: 'UnknownError', + }; + } + }} + /> + ); +} +``` + +#### d. Create a route handler for sign-in + +`next-auth` requires a route handler for sign-in. Create a file `app/api/auth/[...nextauth]/route.ts`: + +```ts title="app/api/auth/[...nextauth]/route.ts" +import { handlers } from '../../../../auth'; + +export const { GET, POST } = handlers; +``` + +#### e. Add a middleware + +Add a middleware to your app to protect your dashboard pages: + +```ts title="middleware.ts" +export { auth as middleware } from './auth'; + +export const config = { + // https://nextjs.org/docs/app/building-your-application/routing/middleware#matcher + matcher: ['/((?!api|_next/static|_next/image|.*\\.png$).*)'], +}; +``` + +That's it! You now have a fully functional authentication setup for your Next.js app. diff --git a/docs/data/toolpad/core/pages.ts b/docs/data/toolpad/core/pages.ts index 500f23828fe..a7fc98aa9de 100644 --- a/docs/data/toolpad/core/pages.ts +++ b/docs/data/toolpad/core/pages.ts @@ -12,10 +12,18 @@ const pages: MuiPage[] = [ pathname: '/toolpad/core/introduction', title: 'Overview', }, + { + pathname: '/toolpad/core/introduction/base-concepts', + title: 'Base Concepts', + }, { pathname: '/toolpad/core/introduction/installation', title: 'Installation', }, + { + pathname: '/toolpad/core/introduction/integration', + title: 'Integration', + }, { pathname: '/toolpad/core/introduction/tutorial', title: 'Tutorial', diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts index 4f11a03dc6c..a4a7b3f5cfa 100644 --- a/docs/next-env.d.ts +++ b/docs/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/docs/pages/toolpad/core/introduction/base-concepts.js b/docs/pages/toolpad/core/introduction/base-concepts.js new file mode 100644 index 00000000000..df0fd9bde3b --- /dev/null +++ b/docs/pages/toolpad/core/introduction/base-concepts.js @@ -0,0 +1,7 @@ +import * as React from 'react'; +import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs'; +import * as pageProps from '../../../../data/toolpad/core/introduction/base-concepts.md?muiMarkdown'; + +export default function Page() { + return ; +} diff --git a/docs/pages/toolpad/core/introduction/integration.js b/docs/pages/toolpad/core/introduction/integration.js new file mode 100644 index 00000000000..2e29678e8da --- /dev/null +++ b/docs/pages/toolpad/core/introduction/integration.js @@ -0,0 +1,7 @@ +import * as React from 'react'; +import MarkdownDocs from 'docs/src/modules/components/MarkdownDocs'; +import * as pageProps from '../../../../data/toolpad/core/introduction/integration.md?muiMarkdown'; + +export default function Page() { + return ; +} From b3eab0bbe07b891237558c193a3ba6e2f3617b8a Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Wed, 11 Sep 2024 20:15:55 +0530 Subject: [PATCH 02/20] fix: Why --- docs/next-env.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts index a4a7b3f5cfa..4f11a03dc6c 100644 --- a/docs/next-env.d.ts +++ b/docs/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. +// see https://nextjs.org/docs/basic-features/typescript for more information. From 0707dcd00db2d4bc77612a689bedf029f3f5fc80 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Wed, 11 Sep 2024 20:38:05 +0530 Subject: [PATCH 03/20] fix: Add `pages` router and images --- .../toolpad/core/introduction/integration.md | 485 +++++++++++++++++- docs/next-env.d.ts | 2 +- .../docs/core/integration-nextjs-app-dark.png | Bin 0 -> 142839 bytes .../docs/core/integration-nextjs-app.png | Bin 0 -> 142224 bytes .../core/integration-nextjs-pages-dark.png | Bin 0 -> 157701 bytes .../docs/core/integration-nextjs-pages.png | Bin 0 -> 156976 bytes playground/nextjs-pages/next-env.d.ts | 2 +- playground/nextjs-pages/src/auth.ts | 1 - playground/nextjs/next-env.d.ts | 2 +- 9 files changed, 487 insertions(+), 5 deletions(-) create mode 100644 docs/public/static/toolpad/docs/core/integration-nextjs-app-dark.png create mode 100644 docs/public/static/toolpad/docs/core/integration-nextjs-app.png create mode 100644 docs/public/static/toolpad/docs/core/integration-nextjs-pages-dark.png create mode 100644 docs/public/static/toolpad/docs/core/integration-nextjs-pages.png diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md index 08b41bd8bea..3c63a1168b1 100644 --- a/docs/data/toolpad/core/introduction/integration.md +++ b/docs/data/toolpad/core/introduction/integration.md @@ -271,4 +271,487 @@ export const config = { }; ``` -That's it! You now have a fully functional authentication setup for your Next.js app. +That's it! You now have Toolpad Core integrated into your Next.js App Router app with authentication setup: + +{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/integration-nextjs-app.png", "srcDark": "/static/toolpad/docs/core/integration-nextjs-app-dark.png", "alt": "Next.js App Router with Toolpad Core", "caption": "Next.js App Router with Toolpad Core", "zoom": true, "aspectRatio": "1.428" }} + +## Next.js Pages Router + +To integrate Toolpad Core into your Next.js Pages Router app, follow these steps: + +### 1. Wrap your application with `AppProvider` + +1. In your root layout file (e.g., `pages/_app.tsx`), wrap your application with the `AppProvider`: + +```tsx title="pages/_app.tsx" +import { AppProvider } from '@toolpad/core/nextjs'; +import { DashboardLayout } from '@toolpad/core/DashboardLayout'; +import { PageContainer } from '@toolpad/core/PageContainer'; +import Head from 'next/head'; +import { AppCacheProvider } from '@mui/material-nextjs/v14-pagesRouter'; +import DashboardIcon from '@mui/icons-material/Dashboard'; +import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; +import { createTheme } from '@mui/material/styles'; + +export type NextPageWithLayout

= NextPage & { + getLayout?: (page: React.ReactElement) => React.ReactNode; + requireAuth?: boolean; +}; + +type AppPropsWithLayout = AppProps & { + Component: NextPageWithLayout; +}; + +const NAVIGATION: Navigation = [ + { + kind: 'header', + title: 'Main items', + }, + { + segment: '', + title: 'Dashboard', + icon: , + }, + { + segment: 'orders', + title: 'Orders', + icon: , + }, +]; + +const BRANDING = { + title: 'My Toolpad Core App', +}; + +const lightTheme = createTheme(); + +const darkTheme = createTheme({ palette: { mode: 'dark' } }); + +const theme = { + light: lightTheme, + dark: darkTheme, +}; + +export default theme; + +export default function AppLayout({ Component, pageProps }: AppPropsWithLayout) { + return ( + + + + + + {children} + + + ); +} + +export default function App(props: AppPropsWithLayout) { + const { + Component, + pageProps: { session, ...pageProps }, + } = props; + + const getLayout = Component.getLayout ?? getDefaultLayout; + + let pageContent = getLayout(); + pageContent = {pageContent}; + + return ( + + {pageContent} + + ); +} +``` + +### 2. Modify `_document.tsx` + +Modify `_document.tsx` to include the `DocumentHeadTags` component: + +```tsx title="pages/_document.tsx" +import * as React from 'react'; +import { + Html, + Head, + Main, + NextScript, + DocumentProps, + DocumentContext, +} from 'next/document'; +import { + DocumentHeadTags, + DocumentHeadTagsProps, + documentGetInitialProps, +} from '@mui/material-nextjs/v14-pagesRouter'; + +export default function Document(props: DocumentProps & DocumentHeadTagsProps) { + return ( + + + + + + +

+ + + + ); +} + +Document.getInitialProps = async (ctx: DocumentContext) => { + const finalProps = await documentGetInitialProps(ctx); + return finalProps; +}; +``` + +### 3. Add a dashboard page + +Create a dashboard page (e.g., `pages/index.tsx`): + +```tsx title="pages/index.tsx" +import * as React from 'react'; +import Typography from '@mui/material/Typography'; + +export default function HomePage() { + return Welcome to Toolpad!; +} +``` + +### 4. (Optional) Add a second page + +Create a new page in the dashboard, for example, `pages/orders/index.tsx`: + +```tsx title="pages/orders/index.tsx" +import * as React from 'react'; +import Typography from '@mui/material/Typography'; + +export default function OrdersPage() { + return Welcome to the orders page!; +} +``` + +To add this page to the navigation, add it to the `NAVIGATION` variable: + +```ts title="pages/_app.tsx" +export const NAVIGATION = [ + // ... + { + segment: 'orders', + title: 'Orders', + icon: , + }, + // ... +]; +``` + +### 5. (Optional) Set up authentication + +If you want to add authentication, you can use Auth.js with Toolpad Core. Here's an example setup: + +#### a. Install the dependencies + +```bash +npm install next-auth@beta +``` + +#### b. Create an `auth.ts` file: + +```ts title="auth.ts" +import NextAuth from 'next-auth'; +import GitHub from 'next-auth/providers/github'; +import Credentials from 'next-auth/providers/credentials'; +import type { Provider } from 'next-auth/providers'; + +const providers: Provider[] = [ + GitHub({ + clientId: process.env.GITHUB_CLIENT_ID, + clientSecret: process.env.GITHUB_CLIENT_SECRET, + }), + Credentials({ + credentials: { + email: { label: 'Email Address', type: 'email' }, + password: { label: 'Password', type: 'password' }, + }, + authorize(c) { + if (c.password !== 'password') { + return null; + } + return { + id: 'test', + name: 'Test User', + email: String(c.email), + }; + }, + }), +]; + +export const providerMap = providers.map((provider) => { + if (typeof provider === 'function') { + const providerData = provider(); + return { id: providerData.id, name: providerData.name }; + } + return { id: provider.id, name: provider.name }; +}); + +export const { handlers, auth } = NextAuth({ + providers, + secret: process.env.AUTH_SECRET, + pages: { + signIn: '/auth/signin', + }, + callbacks: { + authorized({ auth: session, request: { nextUrl } }) { + const isLoggedIn = !!session?.user; + const isPublicPage = nextUrl.pathname.startsWith('/public'); + + if (isPublicPage || isLoggedIn) { + return true; + } + + return false; // Redirect unauthenticated users to login page + }, + }, +}); +``` + +:::warning + +This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [NextAuth documentation](https://authjs.dev/guides/configuring-github). + +::: + +#### c. Modify `_app.tsx` + +Modify `_app.tsx` to include the `authentication` prop and other helpers: + +```tsx title="pages/_app.tsx" +import * as React from 'react'; +import { AppProvider } from '@toolpad/core/nextjs'; +import { DashboardLayout } from '@toolpad/core/DashboardLayout'; +import { PageContainer } from '@toolpad/core/PageContainer'; +import Head from 'next/head'; +import { AppCacheProvider } from '@mui/material-nextjs/v14-pagesRouter'; +import DashboardIcon from '@mui/icons-material/Dashboard'; +import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; +import type { NextPage } from 'next'; +import type { AppProps } from 'next/app'; +import type { Navigation } from '@toolpad/core'; +import { SessionProvider, signIn, signOut, useSession } from 'next-auth/react'; +import LinearProgress from '@mui/material/LinearProgress'; +import theme from '../theme'; + +export type NextPageWithLayout

= NextPage & { + getLayout?: (page: React.ReactElement) => React.ReactNode; + requireAuth?: boolean; +}; + +type AppPropsWithLayout = AppProps & { + Component: NextPageWithLayout; +}; + +const NAVIGATION: Navigation = [ + { + kind: 'header', + title: 'Main items', + }, + { + segment: '', + title: 'Dashboard', + icon: , + }, + { + segment: 'orders', + title: 'Orders', + icon: , + }, +]; + +const BRANDING = { + title: 'My Toolpad Core App', +}; + +const AUTHENTICATION = { + signIn, + signOut, +}; + +function getDefaultLayout(page: React.ReactElement) { + return ( + + {page} + + ); +} + +function RequireAuth({ children }: { children: React.ReactNode }) { + const { status } = useSession(); + + if (status === 'loading') { + return ; + } + + return children; +} + +function AppLayout({ children }: { children: React.ReactNode }) { + const { data: session } = useSession(); + return ( + + + + + + {children} + + + ); +} + +export default function App(props: AppPropsWithLayout) { + const { + Component, + pageProps: { session, ...pageProps }, + } = props; + + const getLayout = Component.getLayout ?? getDefaultLayout; + const requireAuth = Component.requireAuth ?? true; + + let pageContent = getLayout(); + if (requireAuth) { + pageContent = {pageContent}; + } + pageContent = {pageContent}; + + return ( + + {pageContent} + + ); +} +``` + +#### d. Create a sign-in page + +Use the `SignInPage` component to add a sign-in page to your app. For example, `pages/auth/signin.tsx`: + +```tsx title="pages/auth/signin.tsx" +import * as React from 'react'; +import type { GetServerSidePropsContext, InferGetServerSidePropsType } from 'next'; +import Link from '@mui/material/Link'; +import { SignInPage } from '@toolpad/core/SignInPage'; +import { signIn } from 'next-auth/react'; +import { useRouter } from 'next/router'; +import { auth, providerMap } from '../../auth'; + +export default function SignIn({ + providers, +}: InferGetServerSidePropsType) { + const router = useRouter(); + return ( + { + try { + const signInResponse = await signIn( + provider.id, + formData + ? { + email: formData.get('email') as string, + password: formData.get('password') as string, + redirect: false, + } + : { callbackUrl: callbackUrl ?? '/' }, + ); + if (signInResponse && signInResponse.error) { + // Handle Auth.js errors + return { + error: + signInResponse.error === 'CredentialsSignin' + ? 'Invalid credentials' + : 'An error with Auth.js occurred', + type: signInResponse.error, + }; + } + // If the sign in was successful, + // manually redirect to the callback URL + // since the `redirect: false` option was used + // to be able to display error messages on the same page without a full page reload + if (provider.id === 'credentials') { + router.push(callbackUrl ?? '/'); + } + return {}; + } catch (error) { + // An error boundary must exist to handle unknown errors + return { + error: 'Something went wrong.', + type: 'UnknownError', + }; + } + }} + /> + ); +} + +SignIn.getLayout = (page: React.ReactNode) => page; + +SignIn.requireAuth = false; + +export async function getServerSideProps(context: GetServerSidePropsContext) { + const session = await auth(context); + + // If the user is already logged in, redirect. + // Note: Make sure not to redirect to the same page + // To avoid an infinite loop! + if (session) { + return { redirect: { destination: '/' } }; + } + + return { + props: { + providers: providerMap, + }, + }; +} +``` + +#### e. Create a route handler for sign-in + +`next-auth` requires a route handler for sign-in. Create a file `app/api/auth/[...nextauth].ts`: + +```ts title="app/api/auth/[...nextauth].ts" +import { handlers } from '../../../../auth'; + +export const { GET, POST } = handlers; +``` + +:::warning + +Note that this file is a route handler and must be placed in the `app` directory, even if the rest of your app is in the `pages` directory. Know more in the [Auth.js documentation](https://authjs.dev/getting-started/installation#configure). + +::: + +#### f. Add a middleware + +Add a middleware to your app to protect your dashboard pages: + +```ts title="middleware.ts" +export { auth as middleware } from './auth'; + +export const config = { + // https://nextjs.org/docs/app/building-your-application/routing/middleware#matcher + matcher: ['/((?!api|_next/static|_next/image|.*\\.png$).*)'], +}; +``` + +That's it! You now have Toolpad Core integrated into your Next.js Pages Router app with authentication setup: + +{{"component": "modules/components/DocsImage.tsx", "src": "/static/toolpad/docs/core/integration-nextjs-pages.png", "srcDark": "/static/toolpad/docs/core/integration-nextjs-pages-dark.png", "alt": "Next.js Pages Router with Toolpad Core", "caption": "Next.js Pages Router with Toolpad Core", "zoom": true, "aspectRatio": "1.428" }} diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts index 4f11a03dc6c..a4a7b3f5cfa 100644 --- a/docs/next-env.d.ts +++ b/docs/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/docs/public/static/toolpad/docs/core/integration-nextjs-app-dark.png b/docs/public/static/toolpad/docs/core/integration-nextjs-app-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f592dc8f180b8fbc5e2ba6a96985966ec08eeb82 GIT binary patch literal 142839 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 Q!N1YJj~@{}%zpj<0G;;sYXATM literal 0 HcmV?d00001 diff --git a/docs/public/static/toolpad/docs/core/integration-nextjs-app.png b/docs/public/static/toolpad/docs/core/integration-nextjs-app.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9c8147d131f6c38051261bd6300daa045bf5a5 GIT binary patch literal 142224 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 fTO?(iU1YKnoOicXvW@w*tXkgS=UL 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 HPhRt1&8a#H literal 0 HcmV?d00001 diff --git a/docs/public/static/toolpad/docs/core/integration-nextjs-pages.png b/docs/public/static/toolpad/docs/core/integration-nextjs-pages.png new file mode 100644 index 0000000000000000000000000000000000000000..202060737c6993b2d4bd9bbd25eb9d2b6478babf GIT binary patch literal 156976 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%0DB}!z7s> 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 literal 0 HcmV?d00001 diff --git a/playground/nextjs-pages/next-env.d.ts b/playground/nextjs-pages/next-env.d.ts index fd36f9494e2..725dd6f2451 100644 --- a/playground/nextjs-pages/next-env.d.ts +++ b/playground/nextjs-pages/next-env.d.ts @@ -3,4 +3,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/playground/nextjs-pages/src/auth.ts b/playground/nextjs-pages/src/auth.ts index f370ee77abb..7b2858aaba6 100644 --- a/playground/nextjs-pages/src/auth.ts +++ b/playground/nextjs-pages/src/auth.ts @@ -39,7 +39,6 @@ export const { handlers, auth } = NextAuth({ secret: process.env.AUTH_SECRET, pages: { signIn: '/auth/signin', - signOut: '/auth/signout', }, callbacks: { authorized({ auth: session, request: { nextUrl } }) { diff --git a/playground/nextjs/next-env.d.ts b/playground/nextjs/next-env.d.ts index 4f11a03dc6c..40c3d68096c 100644 --- a/playground/nextjs/next-env.d.ts +++ b/playground/nextjs/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. From e69e9f86b558f29ec41dc54ff02a067fe7d6e277 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Wed, 11 Sep 2024 20:41:42 +0530 Subject: [PATCH 04/20] fix: Add callout to base concepts on demo pages --- docs/data/toolpad/core/components/account/account.md | 4 ++++ .../toolpad/core/components/app-provider/app-provider.md | 4 ++++ .../core/components/dashboard-layout/dashboard-layout.md | 4 ++++ .../core/components/page-container/page-container.md | 4 ++++ .../core/components/persistent-state/persistent-state.md | 6 +++++- .../toolpad/core/components/sign-in-page/sign-in-page.md | 4 ++++ .../data/toolpad/core/components/use-dialogs/use-dialogs.md | 6 +++++- .../core/components/use-notifications/use-notifications.md | 6 +++++- 8 files changed, 35 insertions(+), 3 deletions(-) diff --git a/docs/data/toolpad/core/components/account/account.md b/docs/data/toolpad/core/components/account/account.md index cadab1f72c7..f2211deb4a2 100644 --- a/docs/data/toolpad/core/components/account/account.md +++ b/docs/data/toolpad/core/components/account/account.md @@ -8,6 +8,10 @@ components: Account

A component that renders an account management dropdown for your application.

+:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + The `Account` component is a quick and easy way to display an account management menu for authenticated users. It is deeply integrated with the `SignInPage` and `DashboardLayout` components, meaning that it automatically appears in the top navigation bar inside `DashboardLayout` once your users have signed in through the `SignInPage`. ## States diff --git a/docs/data/toolpad/core/components/app-provider/app-provider.md b/docs/data/toolpad/core/components/app-provider/app-provider.md index 47f297a0112..80ca67bc7d9 100644 --- a/docs/data/toolpad/core/components/app-provider/app-provider.md +++ b/docs/data/toolpad/core/components/app-provider/app-provider.md @@ -8,6 +8,10 @@ components: AppProvider

The app provider component provides the necessary context to easily set up a Toolpad application.

+:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + By wrapping an application at the root level with an `AppProvider` component, many of Toolpad's features (such as routing, navigation and theming) can be automatically enabled to their fullest extent, abstracting away complexity and helping you focus on the details that matter. It is not mandatory that every application is wrapped in an `AppProvider`, but it is highly recommended for most apps that use Toolpad. diff --git a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md index ca2b8293902..4f2280e6f8d 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md +++ b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md @@ -8,6 +8,10 @@ components: AppProvider, DashboardLayout, Account

The dashboard layout component provides a customizable out-of-the-box layout for a typical dashboard page.

+:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + The `DashboardLayout` component is a quick, easy way to provide a standard full-screen layout with a header and sidebar to any dashboard page, as well as ready-to-use and easy to customize navigation and branding. Many features of this component are configurable through the [AppProvider](https://mui.com/toolpad/core/react-app-provider/) component that should wrap it. diff --git a/docs/data/toolpad/core/components/page-container/page-container.md b/docs/data/toolpad/core/components/page-container/page-container.md index aab6e754c46..2882f1b8e5e 100644 --- a/docs/data/toolpad/core/components/page-container/page-container.md +++ b/docs/data/toolpad/core/components/page-container/page-container.md @@ -8,6 +8,10 @@ components: PageContainer, PageContainerToolbar

A component that wraps page content and provides a title, breadcrumbs, and page actions.

+:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + `PageContent` is the ideal wrapper for the content of your dashboard. It shows the current page title, and provides breadcrumbs to navigate back into the current hierarchy. It makes your page responsive through the use of the Material UI Container component under the hood. Just like [`DashboardLayout`](/toolpad/core/react-dashboard-layout/), `PageContainer` uses the navigation structure that is defined in the [`AppProvider`](/toolpad/core/react-app-provider/) to build up its breadcrumbs and title. diff --git a/docs/data/toolpad/core/components/persistent-state/persistent-state.md b/docs/data/toolpad/core/components/persistent-state/persistent-state.md index 026c8e03d72..7cba20dfcf9 100644 --- a/docs/data/toolpad/core/components/persistent-state/persistent-state.md +++ b/docs/data/toolpad/core/components/persistent-state/persistent-state.md @@ -7,7 +7,11 @@ title: Persistent storage state

Hooks for synchronizing React state with browser storage.

-Toolpad provides a set of primitives that harmonize how you deal with persisting global state in the browser. Through our hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. +:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + +Toolpad Core provides a set of primitives that harmonize how you deal with persisting global state in the browser. Through our hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. The hook's signature intentionally resembles the `React.useState` hook. Where the first parameter represents the key under which to store the state in the browser, and the second parameter corresponds to the initial value. An optional third parameter can be used to configure the hook. diff --git a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md index f5e84ae7c82..4e8b09599b2 100644 --- a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md +++ b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md @@ -8,6 +8,10 @@ components: SignInPage, Account, NotificationsProvider

A customizable sign-in UI component that abstracts away the pain needed to wire together a secure authentication page for your application.

+:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + The `SignInPage` component is a quick way to generate a ready-to-use authentication page with multiple OAuth providers, or a credentials form. ## OAuth diff --git a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md index afb54c320a2..9e548da6c12 100644 --- a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md +++ b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md @@ -8,7 +8,11 @@ components: DialogsProvider

Imperative APIs to open and interact with dialogs.

-Toolpad core offers a set of abstractions that makes interacting with dialogs simpler. It has an imperative API to open and close dialogs, and allows dialogs to be stacked on top of each other. +:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + +Toolpad Core offers a set of abstractions that makes interacting with dialogs simpler. It has an imperative API to open and close dialogs, and allows dialogs to be stacked on top of each other. First thing you need to do is install the DialogsProvider at the root of your application. diff --git a/docs/data/toolpad/core/components/use-notifications/use-notifications.md b/docs/data/toolpad/core/components/use-notifications/use-notifications.md index 4a4fde97fea..181cdf75172 100644 --- a/docs/data/toolpad/core/components/use-notifications/use-notifications.md +++ b/docs/data/toolpad/core/components/use-notifications/use-notifications.md @@ -8,7 +8,11 @@ components: NotificationsProvider

Imperative APIs to show and interact with application notifications.

-Toolpad core offers a set of abstractions that make it easier to interact with notifications. Notifications are used to give short updates to the user about things that are happening during the application lifetime. They appear at the bottom of the screen. The Toolpad API allows for opening multiple notifications concurrenlty. +:::info +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +::: + +Toolpad Core offers a set of abstractions that make it easier to interact with notifications. Notifications are used to give short updates to the user about things that are happening during the application lifetime. They appear at the bottom of the screen. The Toolpad API allows for opening multiple notifications concurrenlty. First thing you need to do to get access to the notifications APIs is install the NotificationsProvider. From fd6e9c536ecb9ae831fa5c5a9e2a8f0f5d729750 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 12 Sep 2024 16:24:31 +0530 Subject: [PATCH 05/20] fix: `markdownlint` --- docs/data/toolpad/core/introduction/integration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md index 3c63a1168b1..3f5d78c7319 100644 --- a/docs/data/toolpad/core/introduction/integration.md +++ b/docs/data/toolpad/core/introduction/integration.md @@ -122,7 +122,7 @@ If you want to add authentication, you can use Auth.js with Toolpad Core. Here's npm install next-auth@beta ``` -#### b. Create an `auth.ts` file: +#### b. Create an `auth.ts` file ```ts title="auth.ts" import NextAuth from 'next-auth'; @@ -457,7 +457,7 @@ If you want to add authentication, you can use Auth.js with Toolpad Core. Here's npm install next-auth@beta ``` -#### b. Create an `auth.ts` file: +#### b. Create an `auth.ts` file ```ts title="auth.ts" import NextAuth from 'next-auth'; From 7390686e46289614203ede87d0619902f02cec0e Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 12 Sep 2024 07:01:00 -0700 Subject: [PATCH 06/20] Update docs/data/toolpad/core/introduction/base-concepts.md Co-authored-by: Jan Potoms <2109932+Janpot@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/base-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 6441ec44ea3..d82f3947244 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -8,7 +8,7 @@ title: Toolpad Core - Base Concepts ## Imports -Toolpad Core components can be imported directly from the `@toolpad/core` package. This allows you to use them alongside your existing Material UI or other components. +Toolpad Core components can be imported directly from the `@toolpad/core` package. This allows you to use them alongside your existing Material UI or other components. ```tsx import { Button } from '@mui/material'; From 04aae8adde9a73d32fd3c7fabd1d9b25ed574d48 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 12 Sep 2024 07:01:06 -0700 Subject: [PATCH 07/20] Update docs/data/toolpad/core/introduction/base-concepts.md Co-authored-by: Jan Potoms <2109932+Janpot@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/base-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index d82f3947244..89c9ae4248b 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -41,7 +41,7 @@ By wrapping your application with `AppProvider`, you ensure that all other Toolp The `AppProvider` component accepts the following props: -- `theme`: The theme to be used by the app in light/dark mode. If you are using [Material UI with a custom theme](https://mui.com/material-ui/customization/theming/), you can directly pass it here. +- `theme`: The theme to be used by the app in light/dark mode. If you are using [Material UI with a custom theme](https://mui.com/material-ui/customization/theming/), you can directly pass it here. ```tsx import { createTheme } from '@mui/material'; From 44cb7abfd9eaa8e16a65c4055fcea13887018a73 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 12 Sep 2024 22:37:35 +0530 Subject: [PATCH 08/20] fix: Typo --- docs/data/toolpad/core/components/account/account.md | 2 +- docs/data/toolpad/core/components/app-provider/app-provider.md | 2 +- .../core/components/dashboard-layout/dashboard-layout.md | 2 +- .../toolpad/core/components/page-container/page-container.md | 2 +- .../core/components/persistent-state/persistent-state.md | 2 +- docs/data/toolpad/core/components/sign-in-page/sign-in-page.md | 2 +- docs/data/toolpad/core/components/use-dialogs/use-dialogs.md | 2 +- .../core/components/use-notifications/use-notifications.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/data/toolpad/core/components/account/account.md b/docs/data/toolpad/core/components/account/account.md index 67879085fbc..b98a438de57 100644 --- a/docs/data/toolpad/core/components/account/account.md +++ b/docs/data/toolpad/core/components/account/account.md @@ -9,7 +9,7 @@ components: Account

A component that renders an account management dropdown for your application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: The `Account` component is a quick and easy way to display an account management menu for authenticated users. It is deeply integrated with the `SignInPage` and `DashboardLayout` components, meaning that it automatically appears in the top navigation bar inside `DashboardLayout` once your users have signed in through the `SignInPage`. diff --git a/docs/data/toolpad/core/components/app-provider/app-provider.md b/docs/data/toolpad/core/components/app-provider/app-provider.md index 80ca67bc7d9..2551ef5fada 100644 --- a/docs/data/toolpad/core/components/app-provider/app-provider.md +++ b/docs/data/toolpad/core/components/app-provider/app-provider.md @@ -9,7 +9,7 @@ components: AppProvider

The app provider component provides the necessary context to easily set up a Toolpad application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: By wrapping an application at the root level with an `AppProvider` component, many of Toolpad's features (such as routing, navigation and theming) can be automatically enabled to their fullest extent, abstracting away complexity and helping you focus on the details that matter. diff --git a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md index 4f2280e6f8d..65cc18e0e85 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md +++ b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md @@ -9,7 +9,7 @@ components: AppProvider, DashboardLayout, Account

The dashboard layout component provides a customizable out-of-the-box layout for a typical dashboard page.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: The `DashboardLayout` component is a quick, easy way to provide a standard full-screen layout with a header and sidebar to any dashboard page, as well as ready-to-use and easy to customize navigation and branding. diff --git a/docs/data/toolpad/core/components/page-container/page-container.md b/docs/data/toolpad/core/components/page-container/page-container.md index 2882f1b8e5e..bbdd7ff4dc0 100644 --- a/docs/data/toolpad/core/components/page-container/page-container.md +++ b/docs/data/toolpad/core/components/page-container/page-container.md @@ -9,7 +9,7 @@ components: PageContainer, PageContainerToolbar

A component that wraps page content and provides a title, breadcrumbs, and page actions.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: `PageContent` is the ideal wrapper for the content of your dashboard. It shows the current page title, and provides breadcrumbs to navigate back into the current hierarchy. It makes your page responsive through the use of the Material UI Container component under the hood. diff --git a/docs/data/toolpad/core/components/persistent-state/persistent-state.md b/docs/data/toolpad/core/components/persistent-state/persistent-state.md index 7cba20dfcf9..ed890c6a827 100644 --- a/docs/data/toolpad/core/components/persistent-state/persistent-state.md +++ b/docs/data/toolpad/core/components/persistent-state/persistent-state.md @@ -8,7 +8,7 @@ title: Persistent storage state

Hooks for synchronizing React state with browser storage.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: Toolpad Core provides a set of primitives that harmonize how you deal with persisting global state in the browser. Through our hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. diff --git a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md index 53b15728bb0..18662fbd108 100644 --- a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md +++ b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md @@ -9,7 +9,7 @@ components: SignInPage, Account, NotificationsProvider

A customizable sign-in UI component that abstracts away the pain needed to wire together a secure authentication page for your application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: The `SignInPage` component is a quick way to generate a ready-to-use authentication page with multiple OAuth providers, or a credentials form. diff --git a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md index 9e548da6c12..41f1fe8105f 100644 --- a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md +++ b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md @@ -9,7 +9,7 @@ components: DialogsProvider

Imperative APIs to open and interact with dialogs.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: Toolpad Core offers a set of abstractions that makes interacting with dialogs simpler. It has an imperative API to open and close dialogs, and allows dialogs to be stacked on top of each other. diff --git a/docs/data/toolpad/core/components/use-notifications/use-notifications.md b/docs/data/toolpad/core/components/use-notifications/use-notifications.md index 181cdf75172..0c7ba92100e 100644 --- a/docs/data/toolpad/core/components/use-notifications/use-notifications.md +++ b/docs/data/toolpad/core/components/use-notifications/use-notifications.md @@ -9,7 +9,7 @@ components: NotificationsProvider

Imperative APIs to show and interact with application notifications.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/docs/data/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: Toolpad Core offers a set of abstractions that make it easier to interact with notifications. Notifications are used to give short updates to the user about things that are happening during the application lifetime. They appear at the bottom of the screen. The Toolpad API allows for opening multiple notifications concurrenlty. From 22623b98716149a6c9dc200610e112dd3608a7de Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Fri, 13 Sep 2024 13:44:19 +0530 Subject: [PATCH 09/20] fix: Make `AppProvider` props section leaner --- .../core/introduction/base-concepts.md | 37 ++----------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 89c9ae4248b..5771f758cd3 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -37,9 +37,9 @@ function MyApp({ Component, pageProps }) { By wrapping your application with `AppProvider`, you ensure that all other Toolpad components you use have access to the necessary context and functionality. -#### AppProvider Props +#### AppProvider Customization -The `AppProvider` component accepts the following props: +The `AppProvider` component accepts props to configure the app's theme, branding, router, authentication, and session. Here's a quick overview of what you can do with some of them: - `theme`: The theme to be used by the app in light/dark mode. If you are using [Material UI with a custom theme](https://mui.com/material-ui/customization/theming/), you can directly pass it here. @@ -66,35 +66,6 @@ The `AppProvider` component accepts the following props: } ``` -- `branding`: Branding options for the app. - - ```tsx - import { AppProvider } from '@toolpad/core/AppProvider'; - - function MyApp({ Component, pageProps }) { - return ..; - } - ``` - -- `navigation`: The navigation structure for the app. - - ```tsx - import { ShoppingCartIcon } from '@mui/icons-material'; - import { AppProvider } from '@toolpad/core/AppProvider'; - - const NAVIGATION: Navigation = [ - { - segment: 'orders', - title: 'Orders', - icon: , - }, - ]; - - function MyApp({ Component, pageProps }) { - return ..; - } - ``` - - `router`: Router implementation used to navigate between pages. This is the same router that you use in your application. :::info @@ -130,10 +101,8 @@ The `AppProvider` component accepts the following props: } ``` -It is important to note that the `AppProvider` component does not perform routing or authentication by itself. It integrates with any of your existing implementations for the same. - :::info -The [AppProvider](/toolpad/core/react-app-provider/) page contains more details and examples of the usage of these props. +See the [AppProvider](/toolpad/core/react-app-provider/) page for more details and examples of the usage of all props. ::: ## Slots From 5c610226c67fdee166ee4c93f31c5e4813d3ede3 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Mon, 16 Sep 2024 02:53:21 -0700 Subject: [PATCH 10/20] Update docs/data/toolpad/core/introduction/base-concepts.md Co-authored-by: Prakhar Gupta <92228082+prakhargupta1@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/base-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 5771f758cd3..1bb9fc7c10c 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -4,7 +4,7 @@ title: Toolpad Core - Base Concepts # Base Concepts -

Understanding the fundamental concepts of Toolpad Core to effectively integrate and use it in your projects.

+

Understand the fundamental concepts of Toolpad Core to effectively integrate and use it in your projects.

## Imports From ec87f745195cdf1af9eaf20018530a6a09efa1f1 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Mon, 16 Sep 2024 02:53:48 -0700 Subject: [PATCH 11/20] Update docs/data/toolpad/core/pages.ts Co-authored-by: Prakhar Gupta <92228082+prakhargupta1@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/pages.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/pages.ts b/docs/data/toolpad/core/pages.ts index a7fc98aa9de..3ae13c1724c 100644 --- a/docs/data/toolpad/core/pages.ts +++ b/docs/data/toolpad/core/pages.ts @@ -14,7 +14,7 @@ const pages: MuiPage[] = [ }, { pathname: '/toolpad/core/introduction/base-concepts', - title: 'Base Concepts', + title: 'Base concepts', }, { pathname: '/toolpad/core/introduction/installation', From 0b586a26d0395e7adb939963d4d9ee91df070309 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Mon, 16 Sep 2024 02:53:53 -0700 Subject: [PATCH 12/20] Update docs/data/toolpad/core/introduction/base-concepts.md Co-authored-by: Prakhar Gupta <92228082+prakhargupta1@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/base-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 1bb9fc7c10c..37ce2b576b6 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -2,7 +2,7 @@ title: Toolpad Core - Base Concepts --- -# Base Concepts +# Base concepts

Understand the fundamental concepts of Toolpad Core to effectively integrate and use it in your projects.

From 3c9e8e69b57f22d1455b5be60a157176d923f34a Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Mon, 16 Sep 2024 02:53:59 -0700 Subject: [PATCH 13/20] Update docs/data/toolpad/core/introduction/integration.md Co-authored-by: Prakhar Gupta <92228082+prakhargupta1@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md index 3f5d78c7319..2ce138a1ab1 100644 --- a/docs/data/toolpad/core/introduction/integration.md +++ b/docs/data/toolpad/core/introduction/integration.md @@ -31,7 +31,7 @@ Use the following steps to integrate Toolpad Core into your Next.js app: ### 1. Wrap your application with `AppProvider` -1. In your root layout file (e.g., `app/layout.tsx`), wrap your application with the `AppProvider`: +In your root layout file (e.g., `app/layout.tsx`), wrap your application with the `AppProvider`: ```tsx title="app/layout.tsx" import { AppProvider } from '@toolpad/core'; From 420cfdce85b244c115c9dcca64c596ca969234a0 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Mon, 16 Sep 2024 02:54:07 -0700 Subject: [PATCH 14/20] Update docs/data/toolpad/core/introduction/integration.md Co-authored-by: Prakhar Gupta <92228082+prakhargupta1@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/introduction/integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md index 2ce138a1ab1..3e5e22e2735 100644 --- a/docs/data/toolpad/core/introduction/integration.md +++ b/docs/data/toolpad/core/introduction/integration.md @@ -281,7 +281,7 @@ To integrate Toolpad Core into your Next.js Pages Router app, follow these steps ### 1. Wrap your application with `AppProvider` -1. In your root layout file (e.g., `pages/_app.tsx`), wrap your application with the `AppProvider`: +In your root layout file (e.g., `pages/_app.tsx`), wrap your application with the `AppProvider`: ```tsx title="pages/_app.tsx" import { AppProvider } from '@toolpad/core/nextjs'; From d5f86a384a575bb01d68a2c78021ccb445815370 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Tue, 17 Sep 2024 14:14:13 +0530 Subject: [PATCH 15/20] fix: Review --- .../core/introduction/base-concepts.md | 83 +++++-------------- .../toolpad/core/introduction/integration.md | 18 +++- docs/data/toolpad/core/pages.ts | 8 +- 3 files changed, 41 insertions(+), 68 deletions(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 37ce2b576b6..6761284c5aa 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -11,7 +11,7 @@ title: Toolpad Core - Base Concepts Toolpad Core components can be imported directly from the `@toolpad/core` package. This allows you to use them alongside your existing Material UI or other components. ```tsx -import { Button } from '@mui/material'; +import Button from '@mui/material/Button'; import { DashboardLayout } from '@toolpad/core/DashboardLayout'; ``` @@ -37,72 +37,33 @@ function MyApp({ Component, pageProps }) { By wrapping your application with `AppProvider`, you ensure that all other Toolpad components you use have access to the necessary context and functionality. -#### AppProvider Customization +The `AppProvider` component accepts props to configure the app's navigation, theme, branding, router, authentication, and session, like so: -The `AppProvider` component accepts props to configure the app's theme, branding, router, authentication, and session. Here's a quick overview of what you can do with some of them: - -- `theme`: The theme to be used by the app in light/dark mode. If you are using [Material UI with a custom theme](https://mui.com/material-ui/customization/theming/), you can directly pass it here. - - ```tsx - import { createTheme } from '@mui/material'; - import { AppProvider } from '@toolpad/core/AppProvider'; - - const customTheme = createTheme({ - cssVariables: { - colorSchemeSelector: 'data-toolpad-color-scheme', - }, - colorSchemes: { - light: { - // ... - }, - dark: { - // ... - }, - }, - }); - - function MyApp({ Component, pageProps }) { - return /* Your App */; - } - ``` - -- `router`: Router implementation used to navigate between pages. This is the same router that you use in your application. - - :::info - Toolpad Core doesn't handle routing itself. Instead, it's designed to integrate seamlessly with your existing routing solution, whether you're using: - - - Next.js App Router - - Next.js Pages Router - - React Router - - Or any other routing library which implements the same interface - - You can pass the router implementation to the `AppProvider` component using the `router` prop. You do not need to pass this prop if you are using Next.js, since it has a file-system based router. - - ::: +```tsx + + {props.children} + +``` -- `authentication`: Authentication implementation used inside Toolpad components. +Head over to the [AppProvider](/toolpad/core/react-app-provider/) page for more details and examples of the usage of all props. -- `session`: Session implementation used inside Toolpad components. +:::info +Toolpad Core doesn't handle routing itself. Instead, it's designed to integrate seamlessly with your existing routing solution, whether you're using: - ```tsx - import { AppProvider } from '@toolpad/core/AppProvider'; - import { SessionProvider, signIn, signOut } from 'next-auth/react'; - import { auth } from '../auth'; +- Next.js App Router +- Next.js Pages Router +- React Router +- Or any other routing library which implements the same interface - function MyApp({ Component, pageProps }) { - const session = await auth(); - return ( - - - .. - - - ); - } - ``` +You can pass the router implementation to the `AppProvider` component using the `router` prop. You do not need to pass this prop if you are using Next.js, since it has a file-system based router. -:::info -See the [AppProvider](/toolpad/core/react-app-provider/) page for more details and examples of the usage of all props. ::: ## Slots diff --git a/docs/data/toolpad/core/introduction/integration.md b/docs/data/toolpad/core/introduction/integration.md index 3e5e22e2735..874f8326f77 100644 --- a/docs/data/toolpad/core/introduction/integration.md +++ b/docs/data/toolpad/core/introduction/integration.md @@ -48,7 +48,13 @@ export default function RootLayout({ children }: { children: React.ReactNode }) } ``` -You can find details on the `AppProvider` props in the [base concepts](/toolpad/core/introduction/base-concepts/#app-provider) section. The [Material UI Next.js App Router integration](https://mui.com/material-ui/integrations/nextjs/) has more details on the `AppRouterCacheProvider`. +You can find details on the `AppProvider` props on the [AppProvider](/toolpad/core/react-app-provider/) page. + +:::info +The `AppRouterCacheProvider` component is not required to use Toolpad Core, but it's recommended to use it to ensure that the styles are appended to the `` and not rendering in the ``. + +See the [Material UI Next.js integration docs](https://mui.com/material-ui/integrations/nextjs/) for more details. +::: ### 2. Create a dashboard layout @@ -183,7 +189,7 @@ export const { handlers, auth, signIn, signOut } = NextAuth({ :::warning -This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [NextAuth documentation](https://authjs.dev/guides/configuring-github). +This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [Auth.js documentation](https://authjs.dev/guides/configuring-github). ::: @@ -366,6 +372,12 @@ export default function App(props: AppPropsWithLayout) { } ``` +:::info +The `AppCacheProvider` component is not required to use Toolpad Core, but it's recommended. + +See the [Material UI Next.js Pages Router integration docs](https://mui.com/material-ui/integrations/nextjs/#configuration-2) for more details. +::: + ### 2. Modify `_document.tsx` Modify `_document.tsx` to include the `DocumentHeadTags` component: @@ -519,7 +531,7 @@ export const { handlers, auth } = NextAuth({ :::warning -This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [NextAuth documentation](https://authjs.dev/guides/configuring-github). +This file is only for demonstration purposes and allows signing in with `password` as the password. You should use a more secure method for authentication in a production environment, preferably OAuth with your own `CLIENT_ID` and `CLIENT_SECRET`. Find more details on to get these values in the [Auth.js documentation](https://authjs.dev/guides/configuring-github). ::: diff --git a/docs/data/toolpad/core/pages.ts b/docs/data/toolpad/core/pages.ts index 3ae13c1724c..0830d61d8ee 100644 --- a/docs/data/toolpad/core/pages.ts +++ b/docs/data/toolpad/core/pages.ts @@ -12,14 +12,14 @@ const pages: MuiPage[] = [ pathname: '/toolpad/core/introduction', title: 'Overview', }, - { - pathname: '/toolpad/core/introduction/base-concepts', - title: 'Base concepts', - }, { pathname: '/toolpad/core/introduction/installation', title: 'Installation', }, + { + pathname: '/toolpad/core/introduction/base-concepts', + title: 'Base concepts', + }, { pathname: '/toolpad/core/introduction/integration', title: 'Integration', From 9b8ce2fca619e94f7ea04a26261213fc1bf7c3f7 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 19 Sep 2024 22:13:30 -0700 Subject: [PATCH 16/20] Update docs/data/toolpad/core/components/persistent-state/persistent-state.md Co-authored-by: Jan Potoms <2109932+Janpot@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- .../core/components/persistent-state/persistent-state.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/components/persistent-state/persistent-state.md b/docs/data/toolpad/core/components/persistent-state/persistent-state.md index ed890c6a827..9f479c673e2 100644 --- a/docs/data/toolpad/core/components/persistent-state/persistent-state.md +++ b/docs/data/toolpad/core/components/persistent-state/persistent-state.md @@ -11,7 +11,7 @@ title: Persistent storage state If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. ::: -Toolpad Core provides a set of primitives that harmonize how you deal with persisting global state in the browser. Through our hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. +Toolpad Core provides a set of hooks that abstract dealing with persisting global state in the browser. Through these hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. The hook's signature intentionally resembles the `React.useState` hook. Where the first parameter represents the key under which to store the state in the browser, and the second parameter corresponds to the initial value. An optional third parameter can be used to configure the hook. From 8d523d6907c1d5589e73c029e54dfa869da5b54a Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Thu, 19 Sep 2024 22:42:02 -0700 Subject: [PATCH 17/20] Update docs/data/toolpad/core/components/account/account.md Co-authored-by: Jan Potoms <2109932+Janpot@users.noreply.github.com> Signed-off-by: Bharat Kashyap --- docs/data/toolpad/core/components/account/account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/data/toolpad/core/components/account/account.md b/docs/data/toolpad/core/components/account/account.md index b98a438de57..7b5121fb8d3 100644 --- a/docs/data/toolpad/core/components/account/account.md +++ b/docs/data/toolpad/core/components/account/account.md @@ -9,7 +9,7 @@ components: Account

A component that renders an account management dropdown for your application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: The `Account` component is a quick and easy way to display an account management menu for authenticated users. It is deeply integrated with the `SignInPage` and `DashboardLayout` components, meaning that it automatically appears in the top navigation bar inside `DashboardLayout` once your users have signed in through the `SignInPage`. From 2f5ce91f7275617d777ae7f4d3df18d0b5211741 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Fri, 20 Sep 2024 11:47:28 +0530 Subject: [PATCH 18/20] fix: Jan review --- .../toolpad/core/components/app-provider/app-provider.md | 2 +- .../core/components/dashboard-layout/dashboard-layout.md | 2 +- .../core/components/page-container/page-container.md | 2 +- .../core/components/persistent-state/persistent-state.md | 2 +- .../toolpad/core/components/sign-in-page/sign-in-page.md | 2 +- .../toolpad/core/components/use-dialogs/use-dialogs.md | 2 +- .../components/use-notifications/use-notifications.md | 2 +- docs/data/toolpad/core/introduction/base-concepts.md | 8 ++++++-- 8 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/data/toolpad/core/components/app-provider/app-provider.md b/docs/data/toolpad/core/components/app-provider/app-provider.md index 90a0921d3eb..62b4b38b6e9 100644 --- a/docs/data/toolpad/core/components/app-provider/app-provider.md +++ b/docs/data/toolpad/core/components/app-provider/app-provider.md @@ -9,7 +9,7 @@ components: AppProvider

The app provider component provides the necessary context to easily set up a Toolpad application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: By wrapping an application at the root level with an `AppProvider` component, many of Toolpad's features (such as routing, navigation and theming) can be automatically enabled to their fullest extent, abstracting away complexity and helping you focus on the details that matter. diff --git a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md index eba8a7abcf7..341fb7170a0 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md +++ b/docs/data/toolpad/core/components/dashboard-layout/dashboard-layout.md @@ -9,7 +9,7 @@ components: AppProvider, DashboardLayout, Account

The dashboard layout component provides a customizable out-of-the-box layout for a typical dashboard page.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: The `DashboardLayout` component is a quick, easy way to provide a standard full-screen layout with a header and sidebar to any dashboard page, as well as ready-to-use and easy to customize navigation and branding. diff --git a/docs/data/toolpad/core/components/page-container/page-container.md b/docs/data/toolpad/core/components/page-container/page-container.md index d527f01d6eb..558be5ace3a 100644 --- a/docs/data/toolpad/core/components/page-container/page-container.md +++ b/docs/data/toolpad/core/components/page-container/page-container.md @@ -9,7 +9,7 @@ components: PageContainer, PageContainerToolbar

A component that wraps page content and provides a title, breadcrumbs, and page actions.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: `PageContainer` is the ideal wrapper for the content of your dashboard. It shows the current page title, and provides breadcrumbs to navigate back into the current hierarchy. It makes your page responsive through the use of the Material UI Container component under the hood. diff --git a/docs/data/toolpad/core/components/persistent-state/persistent-state.md b/docs/data/toolpad/core/components/persistent-state/persistent-state.md index 9f479c673e2..7fe9549b123 100644 --- a/docs/data/toolpad/core/components/persistent-state/persistent-state.md +++ b/docs/data/toolpad/core/components/persistent-state/persistent-state.md @@ -8,7 +8,7 @@ title: Persistent storage state

Hooks for synchronizing React state with browser storage.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: Toolpad Core provides a set of hooks that abstract dealing with persisting global state in the browser. Through these hooks you can synchronise React state with local storage or session storage, or in the url as a query parameter. These hooks all follow a similar philosophy: they identify their data with a unique key and support rich data types through the use of codecs. diff --git a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md index 253a795bd44..85d7fe8c878 100644 --- a/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md +++ b/docs/data/toolpad/core/components/sign-in-page/sign-in-page.md @@ -9,7 +9,7 @@ components: SignInPage, Account, NotificationsProvider

A customizable sign-in UI component that abstracts away the pain needed to wire together a secure authentication page for your application.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: The `SignInPage` component is a quick way to generate a ready-to-use authentication page with multiple OAuth providers, or a credentials form. diff --git a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md index 41f1fe8105f..58504d097fd 100644 --- a/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md +++ b/docs/data/toolpad/core/components/use-dialogs/use-dialogs.md @@ -9,7 +9,7 @@ components: DialogsProvider

Imperative APIs to open and interact with dialogs.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: Toolpad Core offers a set of abstractions that makes interacting with dialogs simpler. It has an imperative API to open and close dialogs, and allows dialogs to be stacked on top of each other. diff --git a/docs/data/toolpad/core/components/use-notifications/use-notifications.md b/docs/data/toolpad/core/components/use-notifications/use-notifications.md index 0c7ba92100e..d47afbe6c18 100644 --- a/docs/data/toolpad/core/components/use-notifications/use-notifications.md +++ b/docs/data/toolpad/core/components/use-notifications/use-notifications.md @@ -9,7 +9,7 @@ components: NotificationsProvider

Imperative APIs to show and interact with application notifications.

:::info -If this is your first time using Toolpad Core, you might want to start with the [base concepts](/toolpad/core/introduction/base-concepts/) instead. +If this is your first time using Toolpad Core, it's recommended to read about the [basic concepts](/toolpad/core/introduction/base-concepts/) first. ::: Toolpad Core offers a set of abstractions that make it easier to interact with notifications. Notifications are used to give short updates to the user about things that are happening during the application lifetime. They appear at the bottom of the screen. The Toolpad API allows for opening multiple notifications concurrenlty. diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 6761284c5aa..799a45cf361 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -17,7 +17,7 @@ import { DashboardLayout } from '@toolpad/core/DashboardLayout'; ## Component Hierarchy -The Toolpad Core library is designed to work within your existing React application structure. The key component in this hierarchy is the `AppProvider`. +The Toolpad Core library is designed to work under different React runtimes such as Next.js, Vite, or even your custom setup. Many of its components rely on functionality of the specific runtime they are used under. The key component in making the components runtime-aware is the `AppProvider`. ### App Provider @@ -62,10 +62,14 @@ Toolpad Core doesn't handle routing itself. Instead, it's designed to integrate - React Router - Or any other routing library which implements the same interface -You can pass the router implementation to the `AppProvider` component using the `router` prop. You do not need to pass this prop if you are using Next.js, since it has a file-system based router. +You can pass the router implementation to the `AppProvider` component using the `router` prop. ::: +:::warning +You do not need to pass the `router` prop if you are using Next.js, since Toolpad Core has an AppProvider exported from `@toolpad/core/nextjs` that sets it up automatically. +::: + ## Slots Toolpad Core uses slots for component customization. Slots allow you to override specific parts of a component, providing flexibility in styling and functionality. You can also pass additional props to specific slots using the `slotProps` prop. From bfe7258f2c51a63dba28178bb42b20d579c340cc Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Fri, 20 Sep 2024 11:51:57 +0530 Subject: [PATCH 19/20] fix: CI --- pnpm-lock.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0b4090e51f..142f78c7af8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -195,7 +195,7 @@ importers: version: 7.35.2(eslint@8.57.0) eslint-plugin-react-compiler: specifier: latest - version: 0.0.0-experimental-7670337-20240918(eslint@8.57.0) + version: 0.0.0-experimental-92aaa43-20240919(eslint@8.57.0) eslint-plugin-react-hooks: specifier: 4.6.2 version: 4.6.2(eslint@8.57.0) @@ -2063,7 +2063,7 @@ packages: resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.25.2 '@babel/preset-typescript@7.24.7': resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} @@ -2136,7 +2136,7 @@ packages: '@docsearch/react@3.6.1': resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==} peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' + '@types/react': ^18.3.4 react: '>= 16.8.0 < 19.0.0' react-dom: '>= 16.8.0 < 19.0.0' search-insights: '>= 1 < 3' @@ -5824,8 +5824,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-react-compiler@0.0.0-experimental-7670337-20240918: - resolution: {integrity: sha512-FZXoYqGK3BiJw2BFQIUL0C9GgEF2QS+y6oiVPm4GooX6SXrg/UVtCi1nMAaBhqTpsF/KF2RjobgePY8KgbqXow==} + eslint-plugin-react-compiler@0.0.0-experimental-92aaa43-20240919: + resolution: {integrity: sha512-l1tEUmxnZcMNkpUffbyNPAV91kZMZYLVeCCRZajK/s1QdP9FquunJQ9uT4c3f0RqdV6n0kloVfnJ0lPD1FTPlg==} engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: eslint: '>=7' @@ -15628,7 +15628,7 @@ snapshots: globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-react-compiler@0.0.0-experimental-7670337-20240918(eslint@8.57.0): + eslint-plugin-react-compiler@0.0.0-experimental-92aaa43-20240919(eslint@8.57.0): dependencies: '@babel/core': 7.25.2 '@babel/parser': 7.25.6 From 9e654e81437794ae0b68e70c87107ad79ab33f96 Mon Sep 17 00:00:00 2001 From: Bharat Kashyap Date: Fri, 20 Sep 2024 12:08:27 +0530 Subject: [PATCH 20/20] fix: Use `success` instead --- docs/data/toolpad/core/introduction/base-concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data/toolpad/core/introduction/base-concepts.md b/docs/data/toolpad/core/introduction/base-concepts.md index 799a45cf361..f742f389b75 100644 --- a/docs/data/toolpad/core/introduction/base-concepts.md +++ b/docs/data/toolpad/core/introduction/base-concepts.md @@ -66,8 +66,8 @@ You can pass the router implementation to the `AppProvider` component using the ::: -:::warning -You do not need to pass the `router` prop if you are using Next.js, since Toolpad Core has an AppProvider exported from `@toolpad/core/nextjs` that sets it up automatically. +:::success +If you are using Next.js, use the `AppProvider` exported from `@toolpad/core/nextjs`. This automatically sets up the router for you and you do not need to pass the `router` prop. ::: ## Slots