| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | import DocBreadcrumbs from '@theme/DocBreadcrumbs';import DocItemContent from '@theme/DocItem/Content';import DocItemFooter from '@theme/DocItem/Footer';import DocItemPaginator from '@theme/DocItem/Paginator';import DocItemTOCDesktop from '@theme/DocItem/TOC/Desktop';import DocItemTOCMobile from '@theme/DocItem/TOC/Mobile';import DocVersionBadge from '@theme/DocVersionBadge';import DocVersionBanner from '@theme/DocVersionBanner';import React from 'react';import clsx from 'clsx';import {useDoc} from '@docusaurus/theme-common/internal';import {useWindowSize} from '@docusaurus/theme-common';import styles from './styles.module.css';/** * Decide if the toc should be rendered, on mobile or desktop viewports */function useDocTOC() {  const {frontMatter, toc} = useDoc();  const windowSize = useWindowSize();  const hidden = frontMatter.hide_table_of_contents;  const canRender = !hidden && toc.length > 0;  const mobile = canRender ? <DocItemTOCMobile /> : undefined;  const desktop =    canRender && (windowSize === 'desktop' || windowSize === 'ssr') ? (      <DocItemTOCDesktop />    ) : undefined;  return {    hidden,    mobile,    desktop,  };}export default function DocItemLayout({children}) {  const docTOC = useDocTOC();  return (    <div className="row docitem-content">      <div className={clsx('col', !docTOC.hidden && styles.docItemCol)}>        <DocVersionBanner />        <div className={styles.docItemContainer}>          <article>            <div className='breadcrumb-row'>              <div>                <DocBreadcrumbs />              </div>              <div>                <DocVersionBadge />              </div>            </div>            {docTOC.mobile}            <DocItemContent>{children}</DocItemContent>            <DocItemFooter />          </article>          <DocItemPaginator />        </div>      </div>      {docTOC.desktop && <div className="col col--3">{docTOC.desktop}</div>}    </div>  );}
 |