import { useUser } from "@dashboard/auth"; import useAppState from "@dashboard/hooks/useAppState"; import { isDarkTheme } from "@dashboard/misc"; import { LinearProgress } from "@material-ui/core"; import { useActionBar, useBacklink, useTheme } from "@saleor/macaw-ui"; import clsx from "clsx"; import React from "react"; import Container from "../Container"; import Navigator from "../Navigator"; import NavigatorButton from "../NavigatorButton/NavigatorButton"; import { Sidebar, SidebarDrawer } from "../Sidebar"; import UserChip from "../UserChip"; import useAppChannel from "./AppChannelContext"; import AppChannelSelect from "./AppChannelSelect"; import { useFullSizeStyles, useStyles } from "./styles"; interface AppLayoutProps { children: React.ReactNode; fullSize?: boolean; } const AppLayout: React.FC = ({ children, fullSize = false, }) => { const classes = useStyles(); const fullSizeClasses = useFullSizeStyles(); const { themeType, setTheme } = useTheme(); const { anchor: appActionAnchor } = useActionBar(); const appHeaderAnchor = useBacklink(); const { logout, user } = useUser(); const [appState] = useAppState(); const [isNavigatorVisible, setNavigatorVisibility] = React.useState(false); const { availableChannels, channel, isPickerActive, setChannel } = useAppChannel(false); const toggleTheme = () => setTheme(isDarkTheme(themeType) ? "light" : "dark"); return ( <>
{appState.loading ? ( ) : (
)}
setNavigatorVisibility(true)} /> {isPickerActive && ( )}
{children}
); }; export default AppLayout;