diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx index 911a9451e..e65daf067 100644 --- a/components/Footer/Footer.tsx +++ b/components/Footer/Footer.tsx @@ -208,6 +208,9 @@ const AboutLinks = () => { {t("links.mapleAI")} + + {t("links.testimony21stCentury")} + ) } diff --git a/components/Navbar.tsx b/components/Navbar.tsx index b9f4b3bd1..3d49d7d49 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -8,6 +8,7 @@ import { Col, Container, Dropdown, Nav, Navbar, NavDropdown } from "./bootstrap" import { Avatar, + NavbarLink21stCentury, NavbarLinkAI, NavbarLinkBills, NavbarLinkEditProfile, @@ -87,6 +88,7 @@ const MobileNav: React.FC> = () => { + @@ -222,6 +224,7 @@ const DesktopNav: React.FC> = () => { + diff --git a/components/NavbarComponents.tsx b/components/NavbarComponents.tsx index 97d545deb..ace009e1c 100644 --- a/components/NavbarComponents.tsx +++ b/components/NavbarComponents.tsx @@ -32,6 +32,27 @@ export const Avatar = () => { ) } +export const NavbarLink21stCentury: React.FC< + React.PropsWithChildren<{ + handleClick?: any + other?: any + }> +> = ({ handleClick, other }) => { + const isMobile = useMediaQuery("(max-width: 768px)") + const { t } = useTranslation(["common", "auth"]) + return ( + + + {t("navigation.testimony21stCentury")} + + + ) +} + export const NavbarLinkAI: React.FC< React.PropsWithChildren<{ handleClick?: any diff --git a/components/about/Testimony21stCentury/Testimony21stCentury.tsx b/components/about/Testimony21stCentury/Testimony21stCentury.tsx new file mode 100644 index 000000000..21bb0c165 --- /dev/null +++ b/components/about/Testimony21stCentury/Testimony21stCentury.tsx @@ -0,0 +1,135 @@ +import { useTranslation } from "next-i18next" +import { Container, Row, Col } from "../../bootstrap" +import { + MemberItem, + Divider, + DescrContainer, + NameContainer, + PageTitle, + PageDescr, + SectionContainer, + SectionTitle +} from "../../shared/CommonComponents" + +const Testimony21stCentury = () => { + const { t } = useTranslation("testimony21stCentury") + const whiteSpace = "\u00A0" + + return ( + + + + {t("title")} + + + + + + {whiteSpace} + + {t("section1.desc1")} + + + + + + + + + {whiteSpace} + {t("section2.title")} + + + {t("section2.desc1Main")} + + {/* + */} + + + + + + + + {whiteSpace} + {t("section3.title")} + + + {t("section3.desc1Main")} + + + + + + + + + {whiteSpace} + {t("section4.title")} + + + {t("section4.desc1Main")} + + + + + + + + + {whiteSpace} + {t("section5.title")} + + + {t("section5.desc1Main")} + + + + + + + + + {whiteSpace} + {t("section6.title")} + + + {t("section6.desc1Main")} + + + + + + + + + {whiteSpace} + {t("section7.title")} + + + {t("section7.desc1Main")} + + + + + + + + + {whiteSpace} + {t("section8.title")} + + + {t("section8.desc1Main")} + + + + + + ) +} + +export default Testimony21stCentury diff --git a/pages/about/testimony-in-the-21st-century.tsx b/pages/about/testimony-in-the-21st-century.tsx new file mode 100644 index 000000000..219192dd2 --- /dev/null +++ b/pages/about/testimony-in-the-21st-century.tsx @@ -0,0 +1,21 @@ +import { createPage } from "../../components/page" +import { createGetStaticTranslationProps } from "components/translations" +import Testimony21stCentury from "components/about/Testimony21stCentury/Testimony21stCentury" + +export default createPage({ + title: "Testimony in the 21st Century", + Page: () => { + return ( +
+ +
+ ) + } +}) + +export const getStaticProps = createGetStaticTranslationProps([ + "auth", + "common", + "footer", + "testimony21stCentury" +]) diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 1db9e1fda..2d5da578a 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -56,6 +56,7 @@ "maple_abbr": "MAPLE", "maple_fullName": "Massachusetts Platform for Legislative Engagement", "navigation": { + "testimony21stCentury": "Testimony in the 21st Century", "accountProfile": "Profile", "additionalResources": "Additional Resources", "ai": "How MAPLE Uses AI", diff --git a/public/locales/en/footer.json b/public/locales/en/footer.json index 1423b0ee9..5facdab40 100644 --- a/public/locales/en/footer.json +++ b/public/locales/en/footer.json @@ -14,6 +14,7 @@ "team": "Team", "faq": "FAQ", "mapleAI": "How MAPLE Uses AI", + "testimony21stCentury": "Testimony in the 21st Century", "socials": { "instagram": "Follow MAPLE on Intagram", "linkedin":"Follow MAPLE on LinkedIn", diff --git a/public/locales/en/testimony21stCentury.json b/public/locales/en/testimony21stCentury.json new file mode 100644 index 000000000..b6afb4256 --- /dev/null +++ b/public/locales/en/testimony21stCentury.json @@ -0,0 +1,42 @@ +{ + "title": "Testimony in the 21st Century", + "section1": { + "title": "", + "desc1": "Despite this being a “testimony” website, we often struggle to define it!" + }, + "section2": { + "title": "", + "desc1Title": "", + "desc1Main": "“Public testimony” used to be the sole avenue for influencing legislation and creating a record of legislative discussions and intent. But not anymore!" + }, + "section3": { + "title": "", + "desc1Title": "", + "desc1Main": "A “tweet” or viral video can influence legislation (and often does), and civic debate has moved from meeting halls to online forums and feeds." + }, + "section4": { + "title": "", + "desc1Title": "", + "desc1Main": "While “public testimony” may seem archaic, its underlying goals remain imperative – influencing legislation and documenting legislative discussions." + }, + "section5": { + "title": "", + "desc1Title": "", + "desc1Main": "Whatever the manifestation of political expression - whether a tweet, post, public comment or testimony - these expressions are essential." + }, + "section6": { + "title": "", + "desc1Title": "", + "desc1Main": "Perhaps just as essential is the space that elicits, houses and shares those political expressions." + }, + "section7": { + "title": "", + "desc1Title": "", + "desc1Main": "We, at MAPLE, do not take this responsibility lightly, and neither should you." + }, + "section8": { + "title": "", + "desc1Title": "", + "desc1Main": "However, you should not be intimidated by the phrase “public testimony”. It should not conjure much more uncomfortability than sharing a tweet or post." + } +}