diff --git a/packages/freesewing.org/components/wrappers/page.js b/packages/freesewing.org/components/wrappers/page.js index ae1a731df14..cbd57bce986 100644 --- a/packages/freesewing.org/components/wrappers/page.js +++ b/packages/freesewing.org/components/wrappers/page.js @@ -16,6 +16,7 @@ const PageWrapper= ({ noSearch=false, app=false, layout=Docs, + crumbs=false, children=[] }) => { @@ -41,6 +42,7 @@ const PageWrapper= ({ const childProps = { app: app, title: title, + crumbs: crumbs, search, setSearch, toggleSearch: () => setSearch(!search), noSearch: noSearch, } diff --git a/packages/freesewing.org/hooks/useApp.js b/packages/freesewing.org/hooks/useApp.js index b1a0a0cf387..59d9bb377cf 100644 --- a/packages/freesewing.org/hooks/useApp.js +++ b/packages/freesewing.org/hooks/useApp.js @@ -106,7 +106,7 @@ function useApp(full = true) { /* * Helper method to construct breadcrumb from navigation structure */ - const getBreadcrumb = slug => ({ title: get(navigation, slug).__title, slug }) + const getBreadcrumb = slug => ([ get(navigation, slug).__title, `/${slug}` ]) return { // Static vars diff --git a/packages/freesewing.org/pages/blog/[slug].js b/packages/freesewing.org/pages/blog/[slug].js index 57f4783664f..d23f9be91dd 100644 --- a/packages/freesewing.org/pages/blog/[slug].js +++ b/packages/freesewing.org/pages/blog/[slug].js @@ -5,6 +5,7 @@ import MdxWrapper from 'shared/components/wrappers/mdx' import mdxCompiler from 'shared/mdx/compiler' import Markdown from 'react-markdown' import Head from 'next/head' +import Modal from 'shared/components/modal.js' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { strapiHost } from 'shared/config/freesewing.mjs' import { strapiImage } from 'shared/utils.js' @@ -81,15 +82,17 @@ const PostPage = ({ post, author }) => {
- {post.caption} -
+ + {post.caption} +
+
diff --git a/packages/freesewing.org/pages/blog/index.js b/packages/freesewing.org/pages/blog/index.js index 8575b633170..0b019f35807 100644 --- a/packages/freesewing.org/pages/blog/index.js +++ b/packages/freesewing.org/pages/blog/index.js @@ -55,7 +55,7 @@ const BlogIndexPage = (props) => { return ( -
+
{props.posts.map(post => ) }
diff --git a/packages/freesewing.org/pages/showcase/[slug].js b/packages/freesewing.org/pages/showcase/[slug].js index 15a595892bd..426b9a2f642 100644 --- a/packages/freesewing.org/pages/showcase/[slug].js +++ b/packages/freesewing.org/pages/showcase/[slug].js @@ -6,6 +6,7 @@ import mdxCompiler from 'shared/mdx/compiler' import Markdown from 'react-markdown' import Head from 'next/head' import PageLink from 'shared/components/page-link.js' +import Modal from 'shared/components/modal.js' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { strapiHost } from 'shared/config/freesewing.mjs' import { strapiImage } from 'shared/utils.js' @@ -59,12 +60,9 @@ const PostPage = ({ post, maker }) => { const app = useApp() const crumbs = [ app.getBreadcrumb('showcase'), - { - title: post.title, - slug: `showcase/${post.slug}` - } + [ post.title ] ] - + console.log(crumbs) return (
@@ -84,15 +82,17 @@ const PostPage = ({ post, maker }) => {
- {post.caption} -
+ + {post.caption} +
+
diff --git a/packages/freesewing.org/pages/showcase/designs/[design].js b/packages/freesewing.org/pages/showcase/designs/[design].js index 3e6ffe1e0f6..30a547889de 100644 --- a/packages/freesewing.org/pages/showcase/designs/[design].js +++ b/packages/freesewing.org/pages/showcase/designs/[design].js @@ -45,8 +45,14 @@ const DesignIndexPage = (props) => { } } + const crumbs = [ + app.getBreadcrumb('showcase'), + [ t('designs'), '/showcase/designs' ], + [ t(`patterns:${props.design}.t`) ] + ] + return ( - +
(
  • »
  • - {crumb[2] + {crumb[1] ? ( diff --git a/packages/freesewing.shared/components/mdx/figure.js b/packages/freesewing.shared/components/mdx/figure.js index 2f92f1a5b2a..36e68a09ace 100644 --- a/packages/freesewing.shared/components/mdx/figure.js +++ b/packages/freesewing.shared/components/mdx/figure.js @@ -1,6 +1,8 @@ import Popout from 'shared/components/popout' +import Modal from 'shared/components/modal' const Figure = props => { + const title = props?.title ? props.title : props?.alt @@ -9,21 +11,23 @@ const Figure = props => { return (
    - {props?.alt - {title - ?
    {title}
    - : ( - -
    This image does not have an alt of title specified
    -

    Please improve our documentation and fix this.

    -
    - ) - } + + {props?.alt + {title + ?
    {title}
    + : ( + +
    This image does not have an alt of title specified
    +

    Please improve our documentation and fix this.

    +
    + ) + } +
    ) } diff --git a/packages/freesewing.shared/components/modal.js b/packages/freesewing.shared/components/modal.js new file mode 100644 index 00000000000..1e055a31553 --- /dev/null +++ b/packages/freesewing.shared/components/modal.js @@ -0,0 +1,27 @@ +import { useState } from 'react' + +const Modal = ({ cancel, children }) => { + + const [ modal, setModal ] = useState(false) + + if (modal) return ( +
    setModal(false)}> +
    + {children} +
    +
    + ) + + return ( +
    setModal(!modal)} + className="hover:cursor-zoom-in" + >{children}
    + ) +} + +export default Modal