2022-05-25 18:35:20 +02:00
|
|
|
import { useRouter } from 'next/router'
|
|
|
|
import Link from 'next/link'
|
|
|
|
// Shared components
|
|
|
|
import Aside from 'shared/components/navigation/aside'
|
|
|
|
import ThemePicker from 'shared/components/theme-picker'
|
2022-05-31 10:12:54 +02:00
|
|
|
import Breadcrumbs from 'shared/components/breadcrumbs.js'
|
|
|
|
import { getCrumbs } from 'shared/utils.js'
|
2022-05-25 18:35:20 +02:00
|
|
|
|
2022-05-31 10:12:54 +02:00
|
|
|
const DefaultLayout = ({ app, title=false, crumbs=false, children=[] }) => {
|
2022-05-25 18:35:20 +02:00
|
|
|
const router = useRouter()
|
|
|
|
const slug = router.asPath.slice(1)
|
2022-05-31 10:12:54 +02:00
|
|
|
const breadcrumbs = crumbs
|
|
|
|
? crumbs
|
|
|
|
: getCrumbs(app, slug, title)
|
2022-05-25 18:35:20 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="m-auto flex flex-row justify-center">
|
2022-05-29 17:47:30 +02:00
|
|
|
<Aside app={app} slug={slug} before={<ThemePicker app={app} className="block sm:hidden"/>}/>
|
2022-05-25 18:35:20 +02:00
|
|
|
<section className="py-28 md:py-36">
|
|
|
|
<div>
|
|
|
|
{title && (
|
|
|
|
<div className="px-8 xl:pl-8 2xl:pl-16">
|
2022-05-31 10:12:54 +02:00
|
|
|
<Breadcrumbs title={title} crumbs={breadcrumbs} />
|
|
|
|
{title
|
|
|
|
? <h1>{title}</h1>
|
|
|
|
: <h1>{app.getTitle(slug)}</h1>
|
|
|
|
}
|
2022-05-25 18:35:20 +02:00
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
{children}
|
|
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default DefaultLayout
|