UNPKG

@axeptio/design-system

Version:
58 lines (50 loc) 1.25 kB
import React from 'react'; import styled from 'styled-components'; import PropTypes from 'prop-types'; import { MenuProvider } from '../_contexts/menuContext'; import AppHeader from './AppHeader'; import AppSidebar from './AppSidebar'; const Root = styled.div` display: flex; align-items: flex-start; padding-top: 90px; `; const Main = styled.div` margin-left: auto; margin-right: auto; width: 100%; padding: 20px 30px 90px; max-width: ${props => props.theme.container.xxxlarge}px; @media (min-width: ${props => props.theme.breakpoints.large}px) { flex: 1; width: auto; padding: 20px 60px 90px; } `; const SideMenu = styled.div` display: none; @media (min-width: ${props => props.theme.breakpoints.xlarge}px) { display: block; position: sticky; top: 90px; width: 240px; flex-shrink: 0; padding: 20px; } `; export default function AppLayout({ children, quickNav }) { return ( <Root> <MenuProvider> <AppHeader /> <AppSidebar /> </MenuProvider> <Main>{children}</Main> {quickNav ? <SideMenu>{quickNav}</SideMenu> : null} </Root> ); } AppLayout.propTypes = { children: PropTypes.node.isRequired, quickNav: PropTypes.node };