import useAppState from "@dashboard/hooks/useAppState"; import { DevModeQuery } from "@dashboard/orders/queries"; import { getFilterVariables } from "@dashboard/orders/views/OrderList/filters"; import { LinearProgress } from "@material-ui/core"; import { useActionBar } from "@saleor/macaw-ui"; import { Box } from "@saleor/macaw-ui/next"; import React, { useState } from "react"; import { useLocation } from "react-router"; import { DevModePanel } from "../DevModePanel/DevModePanel"; import { useDevModeContext } from "../DevModePanel/hooks"; import { useDevModeKeyTrigger } from "../DevModePanel/useDevModeKeyTrigger"; import Navigator from "../Navigator"; import { Sidebar } from "../Sidebar"; import { contentMaxWidth } from "./consts"; import { useStyles } from "./styles"; import { extractQueryParams } from "./util"; interface AppLayoutProps { children: React.ReactNode; fullSize?: boolean; } const AppLayout: React.FC = ({ children }) => { const classes = useStyles(); const { anchor: appActionAnchor } = useActionBar(); const [appState] = useAppState(); const [isNavigatorVisible, setNavigatorVisibility] = useState(false); const { isDevModeVisible, setDevModeVisibility, setDevModeContent, setVariables, } = useDevModeContext(); const params = extractQueryParams(useLocation().search); useDevModeKeyTrigger(({ shift }) => { if (shift) { setDevModeContent(DevModeQuery); const variables = JSON.stringify( { filter: getFilterVariables(params), }, null, 2, ); setVariables(variables); } else { setDevModeContent(""); setVariables(""); } setDevModeVisibility(!isDevModeVisible); }); return ( <> {appState.loading && ( )} {children} ); }; export default AppLayout;