2020-10-06 14:58:38 -03:00

49 lines
1.3 KiB
TypeScript

import cn from 'classnames'
import { FC } from 'react'
import s from './Layout.module.css'
import { CommerceProvider } from '@lib/bigcommerce'
import { CartProvider } from '@lib/bigcommerce/cart'
import { Navbar, Featurebar, Footer } from '@components/core'
import { Container, Sidebar } from '@components/ui'
import { CartSidebarView } from '@components/cart'
import { UIProvider, useUI } from '@components/ui/context'
interface Props {
className?: string
children?: any
}
const CoreLayout: FC<Props> = ({ className, children }) => {
const rootClassName = cn(s.root, className)
const { displaySidebar } = useUI()
return (
<div className={rootClassName}>
<Featurebar
title="Free Standard Shipping on orders over $99.99"
description="Due to COVID-19, some orders may experience processing and delivery delays."
/>
<Container>
<Navbar />
<main className={s.main}>{children}</main>
</Container>
<Footer />
<Sidebar show={displaySidebar}>
<CartSidebarView />
</Sidebar>
</div>
)
}
const Layout: FC<Props> = (props) => (
<CommerceProvider locale="en-us">
<CartProvider>
<UIProvider>
<CoreLayout {...props} />
</UIProvider>
</CartProvider>
</CommerceProvider>
)
export default Layout