Skip to content

Commit

Permalink
Merge branch 'development' into feature/OP-185/documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
remko48 authored Jan 5, 2024
2 parents 50bd1c4 + 36700ff commit 0a700b0
Show file tree
Hide file tree
Showing 22 changed files with 930 additions and 96 deletions.
35 changes: 22 additions & 13 deletions .github/workflows/product-page-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@ name: Deploy the Product Page to GitHub Pages
env: # Change these to your preferences any image url can also be a base encoded image
GITHUB_PAGES_BRANCH: gh-pages

# options: "true" | "false"
USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: "true"

# Connected Repository
GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
# options: "true" | "false"
USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: "true"
GITHUB_REPOSITORY_URL: ${{ github.event.repository.url }}
GITHUB_API_BASE_URL: https://api.github.com/repos/${{ github.repository }}/contents
GITHUB_DOCS_DIRECTORY_PATHS: '[{"name": "Features", "location": "/docs/features"},{"name": "Roadmap", "location": "/docs/roadmap"}]'
GITHUB_DOCS_DIRECTORY_PATHS: '[{"name": "Features", "location": "/docs/features"}, {"name": "Roadmap", "location": "/docs/roadmap"}, {"name": "Usecases", "location": "/docs/usecases"}]'

# Links
SLACK_URL: "https://join.slack.com/t/conductionworkspace/shared_invite/zt-1y5kerime-amWEvljvnLvo5S3YfU_jzg"
Expand All @@ -19,9 +18,14 @@ env: # Change these to your preferences any image url can also be a base encoded
# Navbar
NAVBAR_LOGO_URL: "https://conduction.nl/wp-content/uploads/2021/07/cropped-conductionlogo-1.png"

# Header
HEADER_CONTENT: "https://raw.githubusercontent.com/ConductionNL/product-website-template/main/pwa/src/templates/templateParts/header/HeaderContent.json"

# Footer
FOOTER_LOGO_URL: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgd2lkdGg9IjcxLjAwMDAwMHB0IiBoZWlnaHQ9IjcwLjAwMDAwMHB0IiB2aWV3Qm94PSIwIDAgNzEuMDAwMDAwIDcwLjAwMDAwMCIKICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KCiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCw3MC4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCiAgICAgICBmaWxsPSIjNDM3NkZDIiBzdHJva2U9Im5vbmUiPgogICAgICAgIDxwYXRoIGQ9Ik0yMTggNTkyIGwtMTM3IC03NyAwIC0xNjUgMCAtMTY1IDEzMSAtNzQgYzcyIC00MSAxMzcgLTc0IDE0MyAtNzQgNgowIDcwIDMzIDE0MyA3NCBsMTMxIDc0IDEgMTY1IDAgMTY1IC02OCAzNyBjLTM3IDIxIC05OSA1NiAtMTM3IDc3IGwtNzEgNDAKLTEzNiAtNzd6IG0yOTUgLTg1IGw1NyAtMzIgMCAtMTI1IDAgLTEyNSAtMTA2IC02MCBjLTU4IC0zMyAtMTA4IC02MCAtMTExCi01OSAtMyAwIC01MiAyNyAtMTA5IDYwIGwtMTAzIDU5IDAgMTI1IDAgMTI1IDEwNyA2MSAxMDcgNjIgNTAgLTI5IGMyNyAtMTYKNzYgLTQ0IDEwOCAtNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI3OCA0NzIgbC02OCAtMzcgMCAtODUgMCAtODUgNzMgLTM5IDczIC0zOSA2MiAzNCBjMzQgMTggNjIgMzcgNjIKNDEgMCA0IC0xNCAxNSAtMzEgMjMgLTI4IDE1IC0zMyAxNSAtNTQgMSAtMzEgLTIwIC00NiAtMjAgLTg0IDIgLTI3IDE1IC0zMQoyMiAtMzEgNjIgMCA0MCA0IDQ3IDMxIDYzIDM4IDIxIDUzIDIxIDg0IDEgMjEgLTE0IDI2IC0xNCA1NCAxIDE3IDggMzEgMTkgMzEKMjMgMCA4IC0xMTMgNzIgLTEyNiA3MiAtNSAwIC0zOSAtMTcgLTc2IC0zOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg=="
# options: "true" | "false"
FOOTER_LOGO: "true"
FOOTER_LOGO_HREF: "https://conduction.nl"
FOOTER_CONTENT: "https://raw.githubusercontent.com/ConductionNL/product-website-template/main/pwa/src/templates/templateParts/footer/FooterContent.json"

# Jumbotron
JUMBOTRON_TITLE: "Product Website Template"
Expand All @@ -31,6 +35,7 @@ env: # Change these to your preferences any image url can also be a base encoded

# Other
FAVICON_URL: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICAgd2lkdGg9IjcxLjAwMDAwMHB0IiBoZWlnaHQ9IjcwLjAwMDAwMHB0IiB2aWV3Qm94PSIwIDAgNzEuMDAwMDAwIDcwLjAwMDAwMCIKICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KCiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCw3MC4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCiAgICAgICBmaWxsPSIjNDM3NkZDIiBzdHJva2U9Im5vbmUiPgogICAgICAgIDxwYXRoIGQ9Ik0yMTggNTkyIGwtMTM3IC03NyAwIC0xNjUgMCAtMTY1IDEzMSAtNzQgYzcyIC00MSAxMzcgLTc0IDE0MyAtNzQgNgowIDcwIDMzIDE0MyA3NCBsMTMxIDc0IDEgMTY1IDAgMTY1IC02OCAzNyBjLTM3IDIxIC05OSA1NiAtMTM3IDc3IGwtNzEgNDAKLTEzNiAtNzd6IG0yOTUgLTg1IGw1NyAtMzIgMCAtMTI1IDAgLTEyNSAtMTA2IC02MCBjLTU4IC0zMyAtMTA4IC02MCAtMTExCi01OSAtMyAwIC01MiAyNyAtMTA5IDYwIGwtMTAzIDU5IDAgMTI1IDAgMTI1IDEwNyA2MSAxMDcgNjIgNTAgLTI5IGMyNyAtMTYKNzYgLTQ0IDEwOCAtNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI3OCA0NzIgbC02OCAtMzcgMCAtODUgMCAtODUgNzMgLTM5IDczIC0zOSA2MiAzNCBjMzQgMTggNjIgMzcgNjIKNDEgMCA0IC0xNCAxNSAtMzEgMjMgLTI4IDE1IC0zMyAxNSAtNTQgMSAtMzEgLTIwIC00NiAtMjAgLTg0IDIgLTI3IDE1IC0zMQoyMiAtMzEgNjIgMCA0MCA0IDQ3IDMxIDYzIDM4IDIxIDUzIDIxIDg0IDEgMjEgLTE0IDI2IC0xNCA1NCAxIDE3IDggMzEgMTkgMzEKMjMgMCA4IC0xMTMgNzIgLTEyNiA3MiAtNSAwIC0zOSAtMTcgLTc2IC0zOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg=="
PAGE_TITLE: "Common Gateway"

# NL Design Theme
NL_DESIGN_THEME_CLASSNAME: "conduction-theme"
Expand All @@ -39,6 +44,7 @@ on:
push:
branches:
- main
- development

jobs:
build:
Expand All @@ -49,27 +55,30 @@ jobs:
uses: actions/checkout@v2
with:
repository: ConductionNL/product-website-template
ref: main
ref: development

# With special thanks to https://github.com/SpicyPizza/create-envfile
- name: Make envfile
uses: SpicyPizza/create-envfile@v2.0
with:
envkey_GITHUB_REPOSITORY_NAME: ${{ env.GITHUB_REPOSITORY_NAME }}
envkey_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: ${{ env.USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX }}
envkey_GATSBY_GITHUB_REPOSITORY_NAME: ${{ env.GITHUB_REPOSITORY_NAME }}
envkey_GATSBY_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: ${{ env.USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX }}
envkey_GATSBY_GITHUB_REPOSITORY_URL: ${{ env.GITHUB_REPOSITORY_URL }}
envkey_GATSBY_GITHUB_API_BASE_URL: ${{ env.GITHUB_API_BASE_URL }}
envkey_GATSBY_FAVICON_URL: ${{ env.FAVICON_URL }}
envkey_GATSBY_NAVBAR_LOGO_URL: ${{ env.NAVBAR_LOGO_URL }}
envkey_GATSBY_GITHUB_DOCS_DIRECTORY_PATHS: ${{ env.GITHUB_DOCS_DIRECTORY_PATHS }}
envkey_GATSBY_READ_THE_DOCS_URL: ${{ env.READ_THE_DOCS_URL }}
envkey_GATSBY_SLACK_URL: ${{ env.SLACK_URL }}
envkey_GATSBY_GITHUB_REPOSITORY_URL: ${{ env.GITHUB_REPOSITORY_URL }}
envkey_GATSBY_NAVBAR_LOGO_URL: ${{ env.NAVBAR_LOGO_URL }}
envkey_GATSBY_HEADER_CONTENT: ${{ env.HEADER_CONTENT }}
envkey_GATSBY_FOOTER_LOGO: ${{ env.FOOTER_LOGO }}
envkey_GATSBY_FOOTER_LOGO_HREF: ${{ env.FOOTER_LOGO_HREF }}
envkey_GATSBY_FOOTER_CONTENT: ${{ env.FOOTER_CONTENT }}
envkey_GATSBY_JUMBOTRON_TITLE: ${{ env.JUMBOTRON_TITLE }}
envkey_GATSBY_JUMBOTRON_SUBTITLE: ${{ env.JUMBOTRON_SUBTITLE }}
envkey_GATSBY_JUMBOTRON_DESCRIPTION: ${{ env.JUMBOTRON_DESCRIPTION }}
envkey_GATSBY_JUMBOTRON_SVG: ${{ env.JUMBOTRON_SVG }}
envkey_GATSBY_FOOTER_LOGO_URL: ${{ env.FOOTER_LOGO_URL }}
envkey_GATSBY_FOOTER_LOGO_HREF: ${{ env.FOOTER_LOGO_HREF }}
envkey_GATSBY_FAVICON_URL: ${{ env.FAVICON_URL }}
envkey_GATSBY_PAGE_TITLE: ${{ env.PAGE_TITLE }}
envkey_GATSBY_NL_DESIGN_THEME_CLASSNAME: ${{ env.NL_DESIGN_THEME_CLASSNAME }}
directory: pwa/static
file_name: .env.production
Expand Down
4 changes: 2 additions & 2 deletions pwa/gatsby-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ require("dotenv").config({

module.exports = {
pathPrefix:
process.env.USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX === "true"
? `/${process.env.GITHUB_REPOSITORY_NAME}`
process.env.GATSBY_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX === "true"
? `/${process.env.GATSBY_GITHUB_REPOSITORY_NAME}`
: "", // we do NOT want to set the prefix if we're using an DNS
plugins: [
{
Expand Down
16 changes: 8 additions & 8 deletions pwa/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions pwa/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"start": "gatsby develop",
"build": "gatsby build --prefix-paths",
"serve": "gatsby serve",
"serve-page": "gatsby serve --prefix-paths",
"clean": "gatsby clean",
"deploy": "gatsby build --prefix-paths && gh-pages -d public",
"lint": "npm-run-all lint:** ",
Expand All @@ -22,8 +23,8 @@
"prepare": "cd .. && husky install"
},
"dependencies": {
"@conduction/components": "2.2.41",
"@conduction/theme": "1.1.1",
"@conduction/components": "2.2.44",
"@conduction/theme": "1.1.5",
"@fortawesome/fontawesome-svg-core": "^6.5.0",
"@fortawesome/free-brands-svg-icons": "6.5.0",
"@fortawesome/free-regular-svg-icons": "^6.5.0",
Expand Down
3 changes: 3 additions & 0 deletions pwa/src/components/ParsedHTML/ParsedHTML.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faWarning } from "@fortawesome/free-solid-svg-icons";
import clsx from "clsx";
import { useHtmlParser } from "../../hooks/htmlParser/useHtmlParser";
import _ from "lodash";

interface ParsedHTMLProps {
contentQuery: UseQueryResult<any, Error>;
Expand All @@ -34,6 +35,8 @@ export const ParsedHTML: React.FC<ParsedHTMLProps> = ({ contentQuery, location,
</div>
);

if (_.isArray(contentQuery.data)) return;

return (
<div className={clsx(styles.container, layoutClassName && layoutClassName)}>
{Parser(contentQuery.data, options)}
Expand Down
37 changes: 37 additions & 0 deletions pwa/src/components/breadcrumbs/Breadcrumbs.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
.breadcrumbsContainer {
margin-block-start: 96px;
padding-block-start: 14px;
padding-block-end: 14px;
}

.breadcrumbs {
background-color: var(--utrecht-breadcrumb-nav-background-color);
border-radius: var(--utrecht-breadcrumb-nav-border-radius);
}

.breadcrumbNavLink:hover {
--utrecht-link-hover-color: var(
--utrecht-breadcrumb-link-hover-color
) !important;
}

.breadcrumbDisabled {
color: var(--utrecht-link-placeholder-color, #eff4f6) !important;
}

.breadcrumbDisabled:hover {
color: var(--utrecht-link-placeholder-color, #eff4f6) !important;
user-select: none !important;
}

.breadcrumbs > ol {
align-items: baseline;
}

@media only screen and (min-width: 992px) {
.breadcrumbsContainer {
margin-block-start: 14px;
padding-block-start: 14px;
padding-block-end: 14px;
}
}
86 changes: 86 additions & 0 deletions pwa/src/components/breadcrumbs/Breadcrumbs.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import * as React from "react";
import * as styles from "./Breadcrumbs.module.css";
import _ from "lodash";
import { Container } from "@conduction/components";
import { BreadcrumbNav, BreadcrumbNavLink, BreadcrumbNavSeparator, Icon } from "@utrecht/component-library-react";
import { useGatsbyContext } from "../../context/gatsby";
import { navigate } from "gatsby";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faChevronRight } from "@fortawesome/free-solid-svg-icons";
import { useTranslation } from "react-i18next";
import { isHomepage } from "../../services/isHomepage";

export const Breadcrumbs: React.FC = () => {
const { t } = useTranslation();

const { gatsbyContext } = useGatsbyContext();

const pageSlugLabel = () => {
const splitNumber = process.env.GATSBY_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX === "true" ? 3 : 2;

const stringLabel = location.pathname.split("/")[splitNumber];
return stringLabel?.replaceAll("_", " ");
};

const detailPageSlugLabel = () => {
const splitNumber = process.env.GATSBY_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX === "true" ? 4 : 3;

const stringLabel = location.pathname.split("/")[splitNumber];
return stringLabel?.replaceAll("_", " ");
};

const translatedCrumbs = gatsbyContext.pageContext.breadcrumb.crumbs.map((crumb: any) => {
if (crumb.pathname === "/pages/[pageSlug]") {
return { ...crumb, crumbLabel: t(pageSlugLabel()), pathname: `/pages/${t(pageSlugLabel())}` };
}
if (crumb.pathname === "/pages/[pageSlug]/[detailPageSlug]") {
return {
...crumb,
crumbLabel: t(detailPageSlugLabel()),
pathname: `/pages/${t(pageSlugLabel())}/${t(detailPageSlugLabel())}`,
};
} else return { ...crumb, crumbLabel: t(_.upperFirst(crumb.crumbLabel)) };
});

const handleBreadcrumbClick = (e: React.MouseEvent<HTMLElement, MouseEvent>, pathname: string) => {
e.preventDefault();

navigate(pathname);
};

if (!isHomepage(gatsbyContext.location.pathname))
return (
<Container layoutClassName={styles.breadcrumbsContainer}>
<BreadcrumbNav className={styles.breadcrumbs} label={t("Breadcrumbs")}>
{translatedCrumbs.map((crumb: any, idx: number) => {
if (gatsbyContext.pageContext.breadcrumb.crumbs.length !== idx + 1) {
return (
<React.Fragment key={idx}>
<BreadcrumbNavLink
className={styles.breadcrumbNavLink}
onClick={(e: any) => handleBreadcrumbClick(e, crumb.pathname)}
href=""
>
{crumb.crumbLabel}
</BreadcrumbNavLink>

<BreadcrumbNavSeparator>
<Icon>
<FontAwesomeIcon icon={faChevronRight} />
</Icon>
</BreadcrumbNavSeparator>
</React.Fragment>
);
}
return (
<BreadcrumbNavLink key={idx} className={styles.breadcrumbDisabled} current disabled href="">
{crumb.crumbLabel}
</BreadcrumbNavLink>
);
})}
</BreadcrumbNav>
</Container>
);

return <></>;
};
Loading

0 comments on commit 0a700b0

Please sign in to comment.