54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import React from "react";
|
|
import clsx from "clsx";
|
|
import ErrorBoundary from "@docusaurus/ErrorBoundary";
|
|
import {
|
|
PageMetadata,
|
|
SkipToContentFallbackId,
|
|
ThemeClassNames,
|
|
} from "@docusaurus/theme-common";
|
|
import { useKeyboardNavigation } from "@docusaurus/theme-common/internal";
|
|
import SkipToContent from "@theme/SkipToContent";
|
|
import AnnouncementBar from "@theme/AnnouncementBar";
|
|
import Navbar from "@theme/Navbar";
|
|
import Footer from "@site/src/containers/Footer";
|
|
import LayoutProvider from "@theme/Layout/Provider";
|
|
import ErrorPageContent from "@theme/ErrorPageContent";
|
|
import styles from "./styles.module.scss";
|
|
export default function Layout(props) {
|
|
const {
|
|
children,
|
|
noFooter,
|
|
wrapperClassName,
|
|
// Not really layout-related, but kept for convenience/retro-compatibility
|
|
title,
|
|
description,
|
|
} = props;
|
|
useKeyboardNavigation();
|
|
return (
|
|
<LayoutProvider>
|
|
<PageMetadata title={title} description={description} />
|
|
|
|
<SkipToContent />
|
|
|
|
<AnnouncementBar />
|
|
|
|
<Navbar />
|
|
|
|
<div
|
|
id={SkipToContentFallbackId}
|
|
className={clsx(
|
|
ThemeClassNames.wrapper.main,
|
|
styles.mainWrapper,
|
|
wrapperClassName
|
|
)}
|
|
>
|
|
<ErrorBoundary fallback={(params) => <ErrorPageContent {...params} />}>
|
|
{children}
|
|
</ErrorBoundary>
|
|
</div>
|
|
|
|
{!noFooter && <Footer />}
|
|
</LayoutProvider>
|
|
);
|
|
}
|