UNPKG

@docusaurus/core

Version:

Easy to Maintain Open Source Documentation Websites

50 lines (49 loc) 1.85 kB
/** * 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 '@generated/client-modules'; import routes from '@generated/routes'; import { useLocation } from '@docusaurus/router'; import renderRoutes from '@docusaurus/renderRoutes'; import Root from '@theme/Root'; import ThemeProvider from '@theme/ThemeProvider'; import SiteMetadata from '@theme/SiteMetadata'; import normalizeLocation from './normalizeLocation'; import { BrowserContextProvider } from './browserContext'; import { DocusaurusContextProvider } from './docusaurusContext'; import PendingNavigation from './PendingNavigation'; import BaseUrlIssueBanner from './BaseUrlIssueBanner'; import SiteMetadataDefaults from './SiteMetadataDefaults'; // TODO, quick fix for CSS insertion order // eslint-disable-next-line import/order import ErrorBoundary from '@docusaurus/ErrorBoundary'; import HasHydratedDataAttribute from './hasHydratedDataAttribute'; const routesElement = renderRoutes(routes); function AppNavigation() { const location = useLocation(); const normalizedLocation = normalizeLocation(location); return (<PendingNavigation location={normalizedLocation}> {routesElement} </PendingNavigation>); } export default function App() { return (<ErrorBoundary> <DocusaurusContextProvider> <BrowserContextProvider> <Root> <ThemeProvider> <SiteMetadataDefaults /> <SiteMetadata /> <BaseUrlIssueBanner /> <AppNavigation /> </ThemeProvider> </Root> <HasHydratedDataAttribute /> </BrowserContextProvider> </DocusaurusContextProvider> </ErrorBoundary>); }