UNPKG

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
// ** 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