import React, { useState, useEffect, useContext } from 'react'
import { useAccount } from '@freesewing/react/hooks/useAccount'
import {
LoadingStatusContext,
LoadingStatusContextProvider,
} from '@freesewing/react/context/LoadingStatus'
import { ModalContext, ModalContextProvider } from '@freesewing/react/context/Modal'
import {
ChatIcon,
DesignIcon,
DocsIcon,
HelpIcon,
ShowcaseIcon,
RssIcon,
LockIcon,
UserIcon,
} from '@freesewing/react/components/Icon'
import { Layout as DefaultLayout } from '@freesewing/react/components/Layout'
/**
* This component should be the top level of a Docusaurus page where you want access to context.
*
* This sets up the various context providers before
* passing all props down to the InnerPageWrapper.
* This is required because the context providers need to
* be set up for the modal and loading state work.
* We also re-use the Docusaurus Layout component here, which needs to be at
* the top level of the page.
*
* @component
* @param {object} props - All component props
* @param {React.Component} props.DocusaurusLayout - The docusaurus layout to apply
* @param {React.Component} props.Layout - The layout to apply inside docusaurus
* @param {JSX.Element} props.children - The component children
* @param {array} props.crumbs - The page breadcrumbs
* @param {string} props.description - The page description
* @param {string} props.title - The page title
* @returns {JSX.Element}
*/
export const DocusaurusPage = (props) => {
const DocusaurusLayout = props.DocusaurusLayout
return DocusaurusLayout ? (
You need to pass in the DocusaurusLayout component
) } /** * This component should be the top level of any Docusaurus content that's not * a full page where you want access to context (typically account pages and so on). * * This sets up the various context providers before * passing all props down to the InnerPageWrapper. * This is required because the context providers need to * be setup for the modal and loading state work we do in the InnerPageWrapper * * @component * @param {object} props - All component props * @param {React.Component} props.Layout - The layout to apply inside docusaurus * @param {JSX.Element} props.children - The component children * @param {array} props.crumbs - The page breadcrumbs * @param {string} props.description - The page description * @param {string} props.title - The page title * @returns {JSX.Element} */ export const DocusaurusDoc = (props) => (