import React from 'react' import IconButton from '@mui/material/IconButton' import MenuUi from 'mdi-material-ui/Menu' import AppsIcon from 'mdi-material-ui/Apps' import CloseIcon from 'mdi-material-ui/Close' import shallow from 'zustand/shallow' import LmIcon from '../../icon/LmIcon' import { LmToggleDrawerButtonProps } from './toolbarTypes' import { usePage, useSettings } from '../../provider/SettingsPageProvider' import { useNavigationStore } from '../../../utils/state/navigationState' import { LmComponentRender } from '@LmComponentRender' import clsx from 'clsx' const useDrawer = () => useNavigationStore( (state) => ({ toggleLeftNavigation: state.toggleLeftDrawer, toggleRightNavigation: state.toggleRightDrawer, isLeftOpen: state.leftNavigationDrawer, isRightOpen: state.rightNavigationDrawer }), shallow ) export function LmToggleDrawerButton({ content }: LmToggleDrawerButtonProps): JSX.Element | null { const settings = useSettings() const page = usePage() const { isLeftOpen, isRightOpen, toggleLeftNavigation, toggleRightNavigation } = useDrawer() // const toggleLeftNavigation = useNavigationStore(toggleLeftNavigationSelector) // const toggleRightNavigation = useNavigationStore( // toggleRightNavigationSelector // ) const rightDrawerMediaBreakpoint = page?.mobile_breakpoint const leftDrawerMediaBreakpoint = settings.mobile_nav_breakpoint const rightDrawer = content.is_right_drawer const hasRightDrawer = page?.right_body?.length if (rightDrawer && !hasRightDrawer) { return null // if no right drawer on page hide } const breakpointClass = rightDrawer ? rightDrawerMediaBreakpoint || 'sm' : leftDrawerMediaBreakpoint || 'sm' const ActiveIcon = () => content.icon?.name ? ( ) : rightDrawer ? ( ) : ( ) return content.button?.length ? ( { rightDrawer ? toggleRightNavigation() : toggleLeftNavigation() }} /> ) : ( rightDrawer ? toggleRightNavigation() : toggleLeftNavigation() } size="large" > {rightDrawer ? ( isRightOpen ? ( ) : ( ) ) : isLeftOpen ? ( ) : ( )} ) }