4
0
forked from crowetic/commerce
This commit is contained in:
Luis Alvarez
2020-10-15 16:45:42 -05:00
13 changed files with 95 additions and 112 deletions

View File

@@ -0,0 +1,18 @@
import { FC } from 'react'
import NextHead from 'next/head'
import { DefaultSeo } from 'next-seo'
import config from '@config/seo.json'
const Head: FC = () => {
return (
<>
<DefaultSeo {...config} />
<NextHead>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="manifest" href="/site.webmanifest" key="site-manifest" />
</NextHead>
</>
)
}
export default Head

View File

@@ -0,0 +1 @@
export { default } from './Head'

View File

@@ -1,58 +1,40 @@
import { FC } from 'react'
import cn from 'classnames'
import { ThemeProvider } from 'next-themes'
import { SSRProvider, OverlayProvider } from 'react-aria'
import type { Page } from '@lib/bigcommerce/api/operations/get-all-pages'
import { CommerceProvider } from '@lib/bigcommerce'
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'
import { useUI } from '@components/ui/context'
import s from './Layout.module.css'
interface LayoutProps {
interface Props {
pageProps: {
pages?: Page[]
}
}
interface Props {
pages?: Page[]
}
const CoreLayout: FC<Props> = ({ children, pages }) => {
const Layout: FC<Props> = ({ children, pageProps }) => {
const { displaySidebar, closeSidebar } = useUI()
return (
<div className={cn(s.root)}>
<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 />
</Container>
<main className="fit">{children}</main>
<Footer pages={pages} />
<Sidebar show={displaySidebar} close={closeSidebar}>
<CartSidebarView />
</Sidebar>
</div>
<CommerceProvider locale="en-us">
<div className={cn(s.root)}>
<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 />
</Container>
<main className="fit">{children}</main>
<Footer pages={pageProps.pages} />
<Sidebar show={displaySidebar} close={closeSidebar}>
<CartSidebarView />
</Sidebar>
</div>
</CommerceProvider>
)
}
const Layout: FC<LayoutProps> = ({ children, pageProps }) => (
<ThemeProvider>
<SSRProvider>
<OverlayProvider>
<CommerceProvider locale="en-us">
<UIProvider>
<CoreLayout pages={pageProps.pages}>{children}</CoreLayout>
</UIProvider>
</CommerceProvider>
</OverlayProvider>
</SSRProvider>
</ThemeProvider>
)
export default Layout

View File

@@ -6,3 +6,4 @@ export { default as Navbar } from './Navbar'
export { default as Searchbar } from './Searchbar'
export { default as UserNav } from './UserNav'
export { default as Toggle } from './Toggle'
export { default as Head } from './Head'