From 2f7d6e4505aa3b03d792ea353537347defb09aa6 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Tue, 31 May 2022 10:12:54 +0200 Subject: [PATCH] feat(shared): Moved breadcrumbs to shared component --- .../freesewing.org/components/layouts/bare.js | 54 +--------------- .../freesewing.org/components/layouts/docs.js | 64 ++++--------------- .../components/wrappers/layout.js | 56 ---------------- packages/freesewing.org/hooks/useApp.js | 15 +++++ .../components/breadcrumbs.js | 34 ++++++++++ packages/freesewing.shared/utils.js | 16 +++++ 6 files changed, 77 insertions(+), 162 deletions(-) create mode 100644 packages/freesewing.shared/components/breadcrumbs.js diff --git a/packages/freesewing.org/components/layouts/bare.js b/packages/freesewing.org/components/layouts/bare.js index 22a17e2be89..bdadd65b9f2 100644 --- a/packages/freesewing.org/components/layouts/bare.js +++ b/packages/freesewing.org/components/layouts/bare.js @@ -1,66 +1,14 @@ -import React from 'react' import { useRouter } from 'next/router' -import Link from 'next/link' -// Shared components -import Logo from 'shared/components/logos/freesewing.js' import Aside from 'shared/components/navigation/aside' -import get from 'lodash.get' import ThemePicker from 'shared/components/theme-picker' -const PageTitle = ({ app, slug, title }) => { - if (title) return

{title}

- if (slug) return

{get(app.navigation, slug.split('/')).__title}

- - return

FIXME: This page has no title

-} - -const Breadcrumbs = ({ app, slug=false, title }) => { - if (!slug) return null - const crumbs = [] - const chunks = slug.split('/') - for (const i in chunks) { - const j = parseInt(i)+parseInt(1) - const page = get(app.navigation, chunks.slice(0,j)) - if (page) crumbs.push([page.__linktitle, '/'+chunks.slice(0,j).join('/'), (j < chunks.length)]) - } - - return ( - - ) -} - const DefaultLayout = ({ app, title=false, children=[] }) => { const router = useRouter() const slug = router.asPath.slice(1) return ( <> -