Skip to content

testimony in 21st century base page #1804

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions components/Footer/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,9 @@ const AboutLinks = () => {
<StyledInternalLink href="/about/how-maple-uses-ai">
{t("links.mapleAI")}
</StyledInternalLink>
<StyledInternalLink href="/about/testimony-in-the-21st-century">
{t("links.testimony21stCentury")}
</StyledInternalLink>
</>
)
}
Expand Down
3 changes: 3 additions & 0 deletions components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Col, Container, Dropdown, Nav, Navbar, NavDropdown } from "./bootstrap"

import {
Avatar,
NavbarLink21stCentury,
NavbarLinkAI,
NavbarLinkBills,
NavbarLinkEditProfile,
Expand Down Expand Up @@ -87,6 +88,7 @@ const MobileNav: React.FC<React.PropsWithChildren<unknown>> = () => {
<NavbarLinkSupport handleClick={closeNav} />
<NavbarLinkFAQ handleClick={closeNav} />
<NavbarLinkAI handleClick={closeNav} />
<NavbarLink21stCentury handleClick={closeNav} />
</NavDropdown>

<NavDropdown className={"navLink-primary"} title={t("learn")}>
Expand Down Expand Up @@ -222,6 +224,7 @@ const DesktopNav: React.FC<React.PropsWithChildren<unknown>> = () => {
<NavbarLinkSupport />
<NavbarLinkFAQ />
<NavbarLinkAI />
<NavbarLink21stCentury />
</Dropdown.Menu>
</Dropdown>
</div>
Expand Down
21 changes: 21 additions & 0 deletions components/NavbarComponents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
<NavDropdown.Item onClick={handleClick}>
<NavLink
className={isMobile ? "navLink-primary" : ""}
href="/about/testimony-in-the-21st-century"
{...other}
>
{t("navigation.testimony21stCentury")}
</NavLink>
</NavDropdown.Item>
)
}

export const NavbarLinkAI: React.FC<
React.PropsWithChildren<{
handleClick?: any
Expand Down
135 changes: 135 additions & 0 deletions components/about/Testimony21stCentury/Testimony21stCentury.tsx
Original file line number Diff line number Diff line change
@@ -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 (
<Container>
<Row>
<Col>
<PageTitle>{t("title")}</PageTitle>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">{whiteSpace}</SectionTitle>
<DescrContainer className="py-3 px-4">
{t("section1.desc1")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section2.title")}
</SectionTitle>
<DescrContainer className="py-3 px-4">
{t("section2.desc1Main")}
</DescrContainer>
{/* <MemberItem
name={t("section2.desc1Title")}
descr={t("section2.desc1Main")}
/>
<Divider /> */}
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section3.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section3.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section4.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section4.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section5.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section5.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section6.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section6.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section7.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section7.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
<Row>
<Col className="py-3">
<SectionContainer>
<SectionTitle className="p-2">
{whiteSpace}
{t("section8.title")}
</SectionTitle>
<DescrContainer className="pb-3 px-4">
{t("section8.desc1Main")}
</DescrContainer>
</SectionContainer>
</Col>
</Row>
</Container>
)
}

export default Testimony21stCentury
21 changes: 21 additions & 0 deletions pages/about/testimony-in-the-21st-century.tsx
Original file line number Diff line number Diff line change
@@ -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 (
<div>
<Testimony21stCentury />
</div>
)
}
})

export const getStaticProps = createGetStaticTranslationProps([
"auth",
"common",
"footer",
"testimony21stCentury"
])
1 change: 1 addition & 0 deletions public/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
1 change: 1 addition & 0 deletions public/locales/en/footer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
42 changes: 42 additions & 0 deletions public/locales/en/testimony21stCentury.json
Original file line number Diff line number Diff line change
@@ -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."
}
}