import { useDoc, useDocsVersion } from "@docusaurus/theme-common/internal"; import DocItemContent from "@theme/DocItem/Content"; import DocItemFooter from "@theme/DocItem/Footer"; import DocItemPaginator from "@theme/DocItem/Paginator"; import DocVersionBanner from "@theme/DocVersionBanner"; import clsx from "clsx"; import React from "react"; import { useDocTOCwithTutorial } from "../components/tutorial-toc/index"; import { useCurrentTutorial } from "../hooks/use-current-tutorial"; import { DocBreadcrumbs } from "./doc-breadcrumbs"; import { SourceCodeBadge } from "./doc-sourcecode-badge"; import { SwizzleBadge } from "./doc-swizzle-badge"; import { DocTOC } from "./doc-toc"; import { DocTOCMobile } from "./doc-toc-mobile"; import { DocVersionBadge } from "./doc-version-badge"; import { DocSurveyWidget } from "./doc-survey-widget"; import { FULL_WIDTH_TABLE_VARIABLE_NAME } from "./common-table"; export const DocItemLayout = ({ children }) => { const docTOC = useDocTOCwithTutorial(); const tutorial = useCurrentTutorial(); const { frontMatter: { swizzle, source }, } = useDoc(); const { badge, label } = useDocsVersion(); const containerRef = React.useRef(null); React.useLayoutEffect(() => { const containerElement = containerRef.current; if (containerElement) { const width = containerElement.getBoundingClientRect().width; containerElement.style.setProperty( `--${FULL_WIDTH_TABLE_VARIABLE_NAME}`, `${width}px`, ); } // on resize, recompute the full width table variable const handleResize = () => { const width = containerElement.getBoundingClientRect().width; containerElement.style.setProperty( `--${FULL_WIDTH_TABLE_VARIABLE_NAME}`, `${width}px`, ); }; window.addEventListener("resize", handleResize); return () => { window.removeEventListener("resize", handleResize); }; }, [containerRef]); return ( <>
{tutorial?.isTutorial ? null : }
{badge && } {swizzle && } {source && }
{tutorial?.isTutorial ? (
{docTOC.tutorialTOC}
) : ( )}
{children}
{tutorial?.isTutorial ? (
{docTOC.tutorialTOC}
) : ( )} ); };