react-garden
Version:
React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.
39 lines (33 loc) • 1.14 kB
JavaScript
// ** React Import
import { useEffect, useRef } from 'react'
// ** Layout Components
import VerticalLayout from './VerticalLayout'
import HorizontalLayout from './HorizontalLayout'
const Layout = props => {
// ** Props
const { hidden, children, settings, saveSettings } = props
// ** Ref
const isCollapsed = useRef(settings.navCollapsed)
useEffect(() => {
if (hidden) {
if (settings.navCollapsed) {
saveSettings({ ...settings, navCollapsed: false, layout: 'vertical' })
isCollapsed.current = true
} else {
saveSettings({ ...settings, layout: 'vertical' })
}
} else {
if (isCollapsed.current) {
saveSettings({ ...settings, navCollapsed: true, layout: settings.lastLayout })
isCollapsed.current = false
} else {
saveSettings({ ...settings, layout: settings.lastLayout })
}
}
}, [hidden])
if (settings.layout === 'horizontal') {
return <HorizontalLayout {...props}>{children}</HorizontalLayout>
}
return <VerticalLayout {...props}>{children}</VerticalLayout>
}
export default Layout