diff --git a/packages/docusaurus-theme-classic/src/theme-classic.d.ts b/packages/docusaurus-theme-classic/src/theme-classic.d.ts index f248ab38a053..494579be0d2d 100644 --- a/packages/docusaurus-theme-classic/src/theme-classic.d.ts +++ b/packages/docusaurus-theme-classic/src/theme-classic.d.ts @@ -596,14 +596,14 @@ declare module '@theme/Layout' { export default function Layout(props: Props): JSX.Element; } -declare module '@theme/LayoutProviders' { +declare module '@theme/Layout/Provider' { import type {ReactNode} from 'react'; export interface Props { readonly children: ReactNode; } - export default function LayoutProviders(props: Props): JSX.Element; + export default function LayoutProvider(props: Props): JSX.Element; } declare module '@theme/SearchMetadata' { diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/Provider/index.tsx b/packages/docusaurus-theme-classic/src/theme/Layout/Provider/index.tsx new file mode 100644 index 000000000000..4a6d316bdf4a --- /dev/null +++ b/packages/docusaurus-theme-classic/src/theme/Layout/Provider/index.tsx @@ -0,0 +1,33 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import {composeProviders} from '@docusaurus/theme-common'; +import { + ColorModeProvider, + TabGroupChoiceProvider, + AnnouncementBarProvider, + DocsPreferredVersionContextProvider, + ScrollControllerProvider, + NavbarProvider, + PluginHtmlClassNameProvider, +} from '@docusaurus/theme-common/internal'; +import type {Props} from '@theme/Layout/Provider'; + +const Provider = composeProviders([ + ColorModeProvider, + AnnouncementBarProvider, + TabGroupChoiceProvider, + ScrollControllerProvider, + DocsPreferredVersionContextProvider, + PluginHtmlClassNameProvider, + NavbarProvider, +]); + +export default function LayoutProvider({children}: Props): JSX.Element { + return {children}; +} diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx index 47253c1a4c2d..5026ecf5aedb 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx @@ -14,7 +14,7 @@ import SkipToContent from '@theme/SkipToContent'; import AnnouncementBar from '@theme/AnnouncementBar'; import Navbar from '@theme/Navbar'; import Footer from '@theme/Footer'; -import LayoutProviders from '@theme/LayoutProviders'; +import LayoutProvider from '@theme/Layout/Provider'; import ErrorPageContent from '@theme/ErrorPageContent'; import './styles.css'; import type {Props} from '@theme/Layout'; @@ -32,7 +32,7 @@ export default function Layout(props: Props): JSX.Element { useKeyboardNavigation(); return ( - + @@ -48,6 +48,6 @@ export default function Layout(props: Props): JSX.Element { {!noFooter &&