From 6bdcecd13554cdcb804155f04f3d0eaa96874d72 Mon Sep 17 00:00:00 2001 From: Pedro Ferreira <10789765+apedroferreira@users.noreply.github.com> Date: Fri, 18 Apr 2025 20:32:08 +0100 Subject: [PATCH 01/11] Fix theme switcher in single demo as example --- .../dashboard-layout/DashboardLayoutBasic.js | 38 ++++++++++++------- .../dashboard-layout/DashboardLayoutBasic.tsx | 38 ++++++++++++------- .../DashboardLayoutPattern.js | 4 +- .../DashboardLayoutPattern.tsx | 4 +- .../src/AppProvider/AppProvider.tsx | 4 +- .../src/AppProvider/AppThemeProvider.tsx | 6 +-- 6 files changed, 57 insertions(+), 37 deletions(-) diff --git a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.js b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.js index e403954223a..613500d7b11 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.js +++ b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.js @@ -8,6 +8,8 @@ import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; import BarChartIcon from '@mui/icons-material/BarChart'; import DescriptionIcon from '@mui/icons-material/Description'; import LayersIcon from '@mui/icons-material/Layers'; +import createCache from '@emotion/cache'; +import { CacheProvider } from '@emotion/react'; import { AppProvider } from '@toolpad/core/AppProvider'; import { DashboardLayout } from '@toolpad/core/DashboardLayout'; import { useDemoRouter } from '@toolpad/core/internal'; @@ -99,22 +101,32 @@ function DashboardLayoutBasic(props) { const router = useDemoRouter('/dashboard'); - // Remove this const when copying and pasting into your project. + // Remove these variables when copying and pasting into your project. const demoWindow = window !== undefined ? window() : undefined; + const demoEmotionCache = React.useMemo( + () => + createCache({ + key: 'toolpad-demo-app', + container: demoWindow?.document.head, + }), + [demoWindow?.document.head], + ); return ( - // preview-start - - - - - - // preview-end + + {/* preview-start */} + + + + + + {/* preview-end */} + ); } diff --git a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.tsx b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.tsx index b8ec5f9b01d..885c69f72ff 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.tsx +++ b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutBasic.tsx @@ -7,6 +7,8 @@ import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; import BarChartIcon from '@mui/icons-material/BarChart'; import DescriptionIcon from '@mui/icons-material/Description'; import LayersIcon from '@mui/icons-material/Layers'; +import createCache from '@emotion/cache'; +import { CacheProvider } from '@emotion/react'; import { AppProvider, type Navigation } from '@toolpad/core/AppProvider'; import { DashboardLayout } from '@toolpad/core/DashboardLayout'; import { useDemoRouter } from '@toolpad/core/internal'; @@ -102,21 +104,31 @@ export default function DashboardLayoutBasic(props: DemoProps) { const router = useDemoRouter('/dashboard'); - // Remove this const when copying and pasting into your project. + // Remove these variables when copying and pasting into your project. const demoWindow = window !== undefined ? window() : undefined; + const demoEmotionCache = React.useMemo( + () => + createCache({ + key: 'toolpad-demo-app', + container: demoWindow?.document.head, + }), + [demoWindow?.document.head], + ); return ( - // preview-start - - - - - - // preview-end + + {/* preview-start */} + + + + + + {/* preview-end */} + ); } diff --git a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutPattern.js b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutPattern.js index 83912016e33..cee334b8a9d 100644 --- a/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutPattern.js +++ b/docs/data/toolpad/core/components/dashboard-layout/DashboardLayoutPattern.js @@ -38,9 +38,7 @@ function DemoPageContent({ pathname, navigate }) { textAlign: 'center', }} > - -

Dashboard content for {pathname}

-
+ Dashboard content for {pathname} {pathname.startsWith('/orders') ? (