From 76a44457e48e98e620becd2155682b6d0a112faa Mon Sep 17 00:00:00 2001 From: DrMint Date: Sat, 19 Mar 2022 17:31:36 +0100 Subject: [PATCH] Added more pages in about us --- src/pages/about-us/accords-handbook.tsx | 87 +++++++++++++++++++ src/pages/about-us/index.tsx | 8 +- .../{site-information.tsx => legality.tsx} | 31 ++++++- src/pages/about-us/sharing-policy.tsx | 85 ++++++++++++++++++ 4 files changed, 204 insertions(+), 7 deletions(-) create mode 100644 src/pages/about-us/accords-handbook.tsx rename src/pages/about-us/{site-information.tsx => legality.tsx} (63%) create mode 100644 src/pages/about-us/sharing-policy.tsx diff --git a/src/pages/about-us/accords-handbook.tsx b/src/pages/about-us/accords-handbook.tsx new file mode 100644 index 0000000..43946a9 --- /dev/null +++ b/src/pages/about-us/accords-handbook.tsx @@ -0,0 +1,87 @@ +import AppLayout from "components/AppLayout"; +import Markdawn from "components/Markdown/Markdawn"; +import TOC from "components/Markdown/TOC"; +import ReturnButton, { + ReturnButtonType, +} from "components/PanelComponents/ReturnButton"; +import ContentPanel from "components/Panels/ContentPanel"; +import SubPanel from "components/Panels/SubPanel"; +import { getPost } from "graphql/operations"; +import { GetPostQuery } from "graphql/operations-types"; +import { GetStaticProps } from "next"; +import { useRouter } from "next/router"; +import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps"; +import { prettySlug } from "queries/helpers"; + +interface AccordsHandbookProps extends AppStaticProps { + post: GetPostQuery["posts"]["data"][number]["attributes"]; +} + +export default function AccordsHandbook( + props: AccordsHandbookProps +): JSX.Element { + const { langui, post } = props; + const router = useRouter(); + + const subPanel = ( + + + {post.translations.length > 0 && post.translations[0].body && ( + + )} + + ); + + const contentPanel = ( + + + {post.translations.length > 0 && ( + + )} + + ); + + return ( + 0 + ? post.translations[0].title + : prettySlug(post.slug) + } + subPanel={subPanel} + contentPanel={contentPanel} + {...props} + /> + ); +} + +export const getStaticProps: GetStaticProps = async (context) => { + const props: AccordsHandbookProps = { + ...(await getAppStaticProps(context)), + post: ( + await getPost({ + slug: "accords-handbook", + language_code: context.locale || "en", + }) + ).posts.data[0].attributes, + }; + return { + props: props, + }; +}; diff --git a/src/pages/about-us/index.tsx b/src/pages/about-us/index.tsx index 32fdb35..5b0af29 100644 --- a/src/pages/about-us/index.tsx +++ b/src/pages/about-us/index.tsx @@ -16,13 +16,13 @@ export default function AboutUs(props: AboutUsProps): JSX.Element { title={langui.about_us} description={langui.about_us_description} /> - + - + diff --git a/src/pages/about-us/site-information.tsx b/src/pages/about-us/legality.tsx similarity index 63% rename from src/pages/about-us/site-information.tsx rename to src/pages/about-us/legality.tsx index 8ff04c8..d773386 100644 --- a/src/pages/about-us/site-information.tsx +++ b/src/pages/about-us/legality.tsx @@ -1,12 +1,15 @@ import AppLayout from "components/AppLayout"; import Markdawn from "components/Markdown/Markdawn"; +import TOC from "components/Markdown/TOC"; import ReturnButton, { ReturnButtonType, } from "components/PanelComponents/ReturnButton"; import ContentPanel from "components/Panels/ContentPanel"; +import SubPanel from "components/Panels/SubPanel"; import { getPost } from "graphql/operations"; import { GetPostQuery } from "graphql/operations-types"; import { GetStaticProps } from "next"; +import { useRouter } from "next/router"; import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps"; import { prettySlug } from "queries/helpers"; @@ -16,17 +19,38 @@ interface SiteInfoProps extends AppStaticProps { export default function SiteInformation(props: SiteInfoProps): JSX.Element { const { langui, post } = props; + const router = useRouter(); + + const subPanel = ( + + + {post.translations.length > 0 && post.translations[0].body && ( + + )} + + ); + const contentPanel = ( {post.translations.length > 0 && ( - + )} ); @@ -38,6 +62,7 @@ export default function SiteInformation(props: SiteInfoProps): JSX.Element { ? post.translations[0].title : prettySlug(post.slug) } + subPanel={subPanel} contentPanel={contentPanel} {...props} /> @@ -49,7 +74,7 @@ export const getStaticProps: GetStaticProps = async (context) => { ...(await getAppStaticProps(context)), post: ( await getPost({ - slug: "site-information", + slug: "legality", language_code: context.locale || "en", }) ).posts.data[0].attributes, diff --git a/src/pages/about-us/sharing-policy.tsx b/src/pages/about-us/sharing-policy.tsx new file mode 100644 index 0000000..aea24e4 --- /dev/null +++ b/src/pages/about-us/sharing-policy.tsx @@ -0,0 +1,85 @@ +import AppLayout from "components/AppLayout"; +import Markdawn from "components/Markdown/Markdawn"; +import TOC from "components/Markdown/TOC"; +import ReturnButton, { + ReturnButtonType, +} from "components/PanelComponents/ReturnButton"; +import ContentPanel from "components/Panels/ContentPanel"; +import SubPanel from "components/Panels/SubPanel"; +import { getPost } from "graphql/operations"; +import { GetPostQuery } from "graphql/operations-types"; +import { GetStaticProps } from "next"; +import { useRouter } from "next/router"; +import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps"; +import { prettySlug } from "queries/helpers"; + +interface SharingPolicyProps extends AppStaticProps { + post: GetPostQuery["posts"]["data"][number]["attributes"]; +} + +export default function SharingPolicy(props: SharingPolicyProps): JSX.Element { + const { langui, post } = props; + const router = useRouter(); + + const subPanel = ( + + + {post.translations.length > 0 && post.translations[0].body && ( + + )} + + ); + + const contentPanel = ( + + + {post.translations.length > 0 && ( + + )} + + ); + + return ( + 0 + ? post.translations[0].title + : prettySlug(post.slug) + } + subPanel={subPanel} + contentPanel={contentPanel} + {...props} + /> + ); +} + +export const getStaticProps: GetStaticProps = async (context) => { + const props: SharingPolicyProps = { + ...(await getAppStaticProps(context)), + post: ( + await getPost({ + slug: "sharing-policy", + language_code: context.locale || "en", + }) + ).posts.data[0].attributes, + }; + return { + props: props, + }; +};