Merge branch 'main' into esfoobar-usds/1417-nri-yaml-config

This commit is contained in:
Jorge Escobar 2022-04-05 15:40:33 -04:00
commit 2dca4071dc
27 changed files with 445 additions and 63 deletions

View file

@ -6,6 +6,8 @@ This page contains web links to the datasets that are uploaded as part of our da
- Census data, generated by the [Generate Census Github Action](https://github.com/usds/justice40-tool/blob/main/.github/workflows/generate-census.yml): <https://justice40-data.s3.us-east-1.amazonaws.com/data-sources/census.zip>
- Score data, generated by the [Generate Score Github Action](https://github.com/usds/justice40-tool/blob/main/.github/workflows/generate-score.yml): <https://justice40-data.s3.us-east-1.amazonaws.com/data-pipeline/data/score/csv/full/usa.csv>
- GeoJSON data: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/score/geojson/usa-high.json>
- Shapefile data: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/score/shapefile/usa.zip>
- EJScreen: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/ejscreen_2019/usa.csv>
- Census ACS 2019: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/census_acs_2019/usa.csv>
- Housing and Transportation Index: <https://justice40-data.s3.amazonaws.com/data-pipeline/data/dataset/housing_and_transportation_index/usa.csv>

View file

@ -5,10 +5,10 @@ Feature: The Contact page will open from all other pages
When I click on the "Contact" page in the navigation
Then I see "Contact" in the title
Scenario: Contact page open when navigating from Explore the tool page
Given I am on the "Explore the tool" page
When I click on the "Contact" page in the navigation
Then I see "Contact" in the title
# Scenario: Contact page open when navigating from Explore the tool page
# Given I am on the "Explore the tool" page
# When I click on the "Contact" page in the navigation
# Then I see "Contact" in the title
Scenario: Contact page open when navigating from Methodology page
Given I am on the "Methodology" page

View file

@ -620,9 +620,6 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
alt={'tbd'}
/>
</div>
{/* <div>
<img src={mailIcon} alt={'mail icon for email'}/>
</div> */}
</Button>
</a>

View file

@ -1649,11 +1649,7 @@ exports[`rendering of the AreaDetail checks if indicators for NATION is present
<div>
Heart disease
<div>
Navigate to the explore the tool page. When the map is in view, click on the map. The side panel
will show an indicator desciption of Weighted percent of people ages 18 years and older who have
been told they have heart disease
People ages 18 years and older who have been told they have heart disease
</div>
</div>
<div>

View file

@ -24,7 +24,7 @@ const DownloadPacket = () => {
</span>
</div>
<div className={styles.downloadBoxButtonContainer}>
<a data-cy={'download-link'} href={METHODOLOGY_COPY.DOWNLOAD_ZIP_URL}>
<a data-cy={'download-link'} download href={METHODOLOGY_COPY.DOWNLOAD_ZIP_URL}>
<Button className={styles.downloadBoxButton} type="button">
<div>
<img src={downloadIcon} alt={'download icon for download package'}/>

View file

@ -36,6 +36,7 @@ const PublicEvent = ({event}:IPublicEvent) => {
const isEventExpired = new Date() > event.DATE;
console.log('event and date: ', event.NAME, event.DATE, isEventExpired);
return (
<CollectionItem
variantComponent={

View file

@ -0,0 +1,43 @@
@use "../../styles/design-system.scss" as *;
.publicVideoContainer {
@include u-margin-top(3);
@include at-media-max('desktop'){
@include u-margin-bottom(3);
}
.publicVideoLink {
display: flex;
text-decoration: none;
.youTubeBtn {
@include u-text("blue-70v");
@include u-bg("yellow-20v");
height: 40px;
@include u-margin-top(3);
margin-left: auto;
margin-right: auto;
&:hover {
@include u-bg("yellow-20");
@include u-text("gray-90");
}
.buttonContainer {
display: flex;
.buttonText {
@include u-margin-right(1);
}
.buttonImage {
width: 21px;
margin-top: -3px;
filter: invert(13%) sepia(76%) saturate(5142%) hue-rotate(192deg) brightness(80%) contrast(106%);
}
}
}
}
};

View file

@ -0,0 +1,17 @@
declare namespace PublicVideoBoxNamespace {
export interface IPublicVideoBoxScss {
publicVideoContainer: string;
publicVideoLink: string;
youTubeBtn: string;
buttonContainer: string;
buttonText: string;
buttonImage: string;
}
}
declare const PublicVideoBoxScssModule: PublicVideoBoxNamespace.IPublicVideoBoxScss & {
/** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */
locals: PublicVideoBoxNamespace.IPublicVideoBoxScss;
};
export = PublicVideoBoxScssModule;

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import PublicVideoBox from './PublicVideoBox';
describe('rendering of the PublicVideoBox', () => {
const {asFragment} = render(
<LocalizedComponent>
<PublicVideoBox />
</LocalizedComponent>,
);
it('checks if component renders', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -0,0 +1,45 @@
import React from 'react';
import {Button, SummaryBox} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import * as PUBLIC_COPY from '../../data/copy/publicEngage';
import * as styles from './PublicVideoBox.module.scss';
// @ts-ignore
import launchIcon from '/node_modules/uswds/dist/img/usa-icons/launch.svg';
const PublicVideoBox = () => {
const intl = useIntl();
return (
<SummaryBox
className={styles.publicVideoContainer}
heading={intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.TITLE)}>
{intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BODY)}
<a
className={styles.publicVideoLink}
href={`https://www.youtube.com/watch?v=QwHWcXbhw28`}
target={'_blank'}
rel="noreferrer"
>
<Button
type="button"
className={styles.youTubeBtn}
>
<div className={styles.buttonContainer}>
<div className={styles.buttonText}>
{intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BUTTON_TEXT)}
</div>
<img
className={styles.buttonImage}
src={launchIcon}
alt={intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.IMG_ALT_TEXT)}
/>
</div>
</Button>
</a>
</SummaryBox>
);
};
export default PublicVideoBox;

View file

@ -0,0 +1,46 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the PublicVideoBox checks if component renders 1`] = `
<DocumentFragment>
<div
class="usa-summary-box"
data-testid="summary-box"
>
<div
class="usa-summary-box__body"
>
<h3
class="usa-summary-box__heading"
>
Can't make an upcoming session?
</h3>
<div
class="usa-summary-box__text"
>
Watch a recorded version of the CEJST training on YouTube.
<a
href="https://www.youtube.com/watch?v=QwHWcXbhw28"
rel="noreferrer"
target="_blank"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<div>
Watch on YouTube
</div>
<img
alt="the icon to show that this button will open in a new tab"
src="test-file-stub"
/>
</div>
</button>
</a>
</div>
</div>
</div>
</DocumentFragment>
`;

View file

@ -0,0 +1,3 @@
import PublicVideoBox from './PublicVideoBox';
export default PublicVideoBox;

View file

@ -0,0 +1,12 @@
@use '../../styles/design-system.scss' as *;
.rfiBox {
@include at-media-max("desktop") {
@include u-margin-top(2);
@include u-margin-bottom(2);
};
@include u-margin-top(10);
}

View file

@ -0,0 +1,12 @@
declare namespace RequestForInfoNamespace {
export interface IRequestForInfoScss {
rfiBox: string;
}
}
declare const RequestForInfoScssModule: RequestForInfoNamespace.IRequestForInfoScss & {
/** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */
locals: RequestForInfoNamespace.IRequestForInfoScss;
};
export = RequestForInfoScssModule;

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import RequestForInfo from './RequestForInfo';
describe('rendering of the RequestForInfo', () => {
const {asFragment} = render(
<LocalizedComponent>
<RequestForInfo/>
</LocalizedComponent>,
);
it('checks if component renders', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -0,0 +1,18 @@
import React from 'react';
import {SummaryBox} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import * as CONTACT_COPY from '../../data/copy/contact';
import * as styles from './RequestForInfo.module.scss';
const RequestForInfo = () => {
const intl = useIntl();
return (
<SummaryBox className={styles.rfiBox} heading={intl.formatMessage(CONTACT_COPY.RFI_BOX.TITLE)}>
{CONTACT_COPY.RFI_BOX_BODY}
</SummaryBox>
);
};
export default RequestForInfo;

View file

@ -0,0 +1,35 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the RequestForInfo checks if component renders 1`] = `
<DocumentFragment>
<div
class="usa-summary-box"
data-testid="summary-box"
>
<div
class="usa-summary-box__body"
>
<h3
class="usa-summary-box__heading"
>
Request for Infomation
</h3>
<div
class="usa-summary-box__text"
>
During the beta period, comments may be submitted on the Climate and Economic Justice Screening Tool via CEQs Request for Information available on
<a
class="usa-link usa-link--external"
data-cy=""
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
federalregister.gov
</a>
.
</div>
</div>
</div>
</DocumentFragment>
`;

View file

@ -0,0 +1,3 @@
import RequestForInfo from './RequestForInfo';
export default RequestForInfo;

View file

@ -32,6 +32,23 @@ export const PAGE_INTRO = defineMessages({
},
});
export const RFI_BOX = defineMessages({
TITLE: {
id: 'contact.page.request.for.info.box.title',
defaultMessage: 'Request for Infomation',
description: 'Navigate to the contact page, this is the title of the request for information box',
},
});
export const RFI_BOX_BODY = <FormattedMessage
id={'contact.page.request.for.info.box.body'}
defaultMessage={`During the beta period, comments may be submitted on the Climate and Economic Justice Screening Tool via CEQs Request for Information available on <link1>federalregister.gov</link1>.`}
description={'Navigate to the contact page, this is the body of the request for information box'}
values={{
link1: COMMON_COPY.linkFn(`https://www.federalregister.gov/d/2022-03920`, false, true),
}}
/>;
export const CENSUS_TRACT_FEEDBACK = {
TITLE: <FormattedMessage
id={'contact.page.census.tract.feedback.title'}

View file

@ -677,12 +677,9 @@ export const SIDE_PANEL_INDICATOR_DESCRIPTION = defineMessages({
},
HEART_DISEASE: {
id: 'explore.tool.page.side.panel.indicator.description.heartDisease',
defaultMessage: `
Navigate to the explore the tool page. When the map is in view, click on the map. The side panel
will show an indicator desciption of Weighted percent of people ages 18 years and older who have
been told they have heart disease
`,
description: `People ages 18 years and older who have been told they have heart disease`,
defaultMessage: `People ages 18 years and older who have been told they have heart disease`,
description: `Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show an indicator desciption of Weighted percent of people ages 18 years and older who have
been told they have heart disease`,
},
LOW_LIFE_EXPECT: {
id: 'explore.tool.page.side.panel.indicator.description.lifeExpect',

View file

@ -64,6 +64,29 @@ export const PAGE_INTRO = defineMessages({
},
});
export const PUBLIC_ENG_VIDEO = defineMessages({
TITLE: {
id: 'public.eng.page.video.box.title.text',
defaultMessage: `Can't make an upcoming session?`,
description: 'Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box title text.',
},
BODY: {
id: 'public.eng.page.video.box.body.text',
defaultMessage: `Watch a recorded version of the CEJST training on YouTube.`,
description: 'Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box body text.',
},
BUTTON_TEXT: {
id: 'public.eng.page.video.box.button.text',
defaultMessage: `Watch on YouTube`,
description: 'Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box button text.',
},
IMG_ALT_TEXT: {
id: 'public.eng.page.video.box.button.img.alt.text',
defaultMessage: `the icon to show that this button will open in a new tab`,
description: 'Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is alt tag of the image in the button.',
},
});
export const PUBLIC_ENG_BUTTON = defineMessages({
LABEL: {
id: 'public.eng.page.button.label',
@ -123,7 +146,7 @@ export const EVENT_TYPES = {
DESCRIPTION: {
id: 'public.eng.page.event.whejac.meeting.day.1.description',
defaultMessage: `
Members of the public are encouraged to provide comments relevant to the beta version of the Climate and Economic Justice Screening Tool that was developed by CEQ and federal government agencies implementation of the Justice40 Initiative will be considered by the WHEJAC during the public meeting.
The White House Environmental Justice Advisory Council is also soliciting feedback on the beta version of the Climate and Economic Justice Screening Tool at its public meeting. The link above has additional details.
`,
description: 'public engagement page event WHEJAC day 1 description',
},
@ -137,7 +160,7 @@ export const EVENT_TYPES = {
DESCRIPTION: {
id: 'public.eng.page.event.whejac.meeting.day.2.description',
defaultMessage: `
Members of the public are encouraged to attend and hear updates and discussion from the WHEJAC Climate and Economic Justice Screening Tool workgroup, the Justice40 workgroup, and the WHEJAC business time and meeting conversation during which the WHEJAC will use reflect on the meeting proceedings and public comment period; provide workgroup updates; discuss action items and finalize next steps.
The White House Environmental Justice Advisory Council is also soliciting feedback on the beta version of the Climate and Economic Justice Screening Tool at its public meeting. The link above has additional details.
`,
description: 'public engagement page event WHEJAC day 2 description',
},
@ -157,9 +180,10 @@ export const EVENT_FIELDS = defineMessages({
},
});
// All events dates are set one day ahead of actual date to account for timezone differences
export const EVENTS = [
{
DATE: new Date(2022, 2, 9),
DATE: new Date(2022, 2, 10),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 1,
@ -176,7 +200,7 @@ export const EVENTS = [
DATA_CY: `mar-9-reg-link-block`,
},
{
DATE: new Date(2022, 2, 10),
DATE: new Date(2022, 2, 11),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 2,
@ -194,7 +218,7 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 2, 16),
DATE: new Date(2022, 2, 17),
NAME: EVENT_TYPES.TRAINING_SESS.NAME,
DESC: EVENT_TYPES.TRAINING_SESS.DESCRIPTION,
NUMBER: 3,
@ -212,7 +236,7 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 2, 22),
DATE: new Date(2022, 2, 23),
NAME: EVENT_TYPES.LISTENING_SESS.NAME,
DESC: EVENT_TYPES.LISTENING_SESS.DESCRIPTION,
NUMBER: 1,
@ -230,7 +254,7 @@ export const EVENTS = [
},
{
DATE: new Date(2022, 30, 2),
DATE: new Date(2022, 2, 31),
NAME: EVENT_TYPES.WHEJAC_DAY1.NAME,
DESC: EVENT_TYPES.WHEJAC_DAY1.DESCRIPTION,
NUMBER: 0,
@ -247,7 +271,7 @@ export const EVENTS = [
DATA_CY: `mar-30-reg-link-block`,
},
{
DATE: new Date(2022, 31, 2),
DATE: new Date(2022, 3, 1),
NAME: EVENT_TYPES.WHEJAC_DAY2.NAME,
DESC: EVENT_TYPES.WHEJAC_DAY2.DESCRIPTION,
NUMBER: 0,
@ -264,7 +288,7 @@ export const EVENTS = [
DATA_CY: `mar-31-reg-link-block`,
},
{
DATE: new Date(2022, 3, 15),
DATE: new Date(2022, 3, 16),
NAME: EVENT_TYPES.LISTENING_SESS.NAME,
DESC: EVENT_TYPES.LISTENING_SESS.DESCRIPTION,
NUMBER: 2,

View file

@ -203,6 +203,14 @@
"defaultMessage": "Contact",
"description": "Navigate to the contact page, this is the contact page header text"
},
"contact.page.request.for.info.box.body": {
"defaultMessage": "During the beta period, comments may be submitted on the Climate and Economic Justice Screening Tool via CEQs Request for Information available on <link1>federalregister.gov</link1>.",
"description": "Navigate to the contact page, this is the body of the request for information box"
},
"contact.page.request.for.info.box.title": {
"defaultMessage": "Request for Infomation",
"description": "Navigate to the contact page, this is the title of the request for information box"
},
"contact.page.sub.header.text": {
"defaultMessage": "Email us",
"description": "Navigate to the contact page, this is the contact page sub header text"
@ -420,8 +428,8 @@
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show an indicator desciption of Economic loss rate to the population in fatalities and \n injuries resulting from natural hazards"
},
"explore.tool.page.side.panel.indicator.description.heartDisease": {
"defaultMessage": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show an indicator desciption of Weighted percent of people ages 18 years and older who have been told they have heart disease",
"description": "People ages 18 years and older who have been told they have heart disease"
"defaultMessage": "People ages 18 years and older who have been told they have heart disease",
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show an indicator desciption of Weighted percent of people ages 18 years and older who have \n been told they have heart disease"
},
"explore.tool.page.side.panel.indicator.description.high.ed": {
"defaultMessage": "Percent of the census tract's population 15 or older not enrolled in college, university, or graduate school",
@ -1292,7 +1300,7 @@
"description": "Navigate to the the public engagement page, this will be the public engagement page event training session name"
},
"public.eng.page.event.whejac.meeting.day.1.description": {
"defaultMessage": "Members of the public are encouraged to provide comments relevant to the beta version of the Climate and Economic Justice Screening Tool that was developed by CEQ and federal government agencies implementation of the Justice40 Initiative will be considered by the WHEJAC during the public meeting.",
"defaultMessage": "The White House Environmental Justice Advisory Council is also soliciting feedback on the beta version of the Climate and Economic Justice Screening Tool at its public meeting. The link above has additional details.",
"description": "public engagement page event WHEJAC day 1 description"
},
"public.eng.page.event.whejac.meeting.day.1.name": {
@ -1300,7 +1308,7 @@
"description": "public engagement page event WHEJAC meeting day 1 name"
},
"public.eng.page.event.whejac.meeting.day.2.description": {
"defaultMessage": "Members of the public are encouraged to attend and hear updates and discussion from the WHEJAC Climate and Economic Justice Screening Tool workgroup, the Justice40 workgroup, and the WHEJAC business time and meeting conversation during which the WHEJAC will use reflect on the meeting proceedings and public comment period; provide workgroup updates; discuss action items and finalize next steps.",
"defaultMessage": "The White House Environmental Justice Advisory Council is also soliciting feedback on the beta version of the Climate and Economic Justice Screening Tool at its public meeting. The link above has additional details.",
"description": "public engagement page event WHEJAC day 2 description"
},
"public.eng.page.event.whejac.meeting.day.2.name": {
@ -1323,6 +1331,22 @@
"defaultMessage": "Public engagement opportunities",
"description": "Navigate to the the public engagement page, this will be the publiceng page title text"
},
"public.eng.page.video.box.body.text": {
"defaultMessage": "Watch a recorded version of the CEJST training on YouTube.",
"description": "Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box body text."
},
"public.eng.page.video.box.button.img.alt.text": {
"defaultMessage": "the icon to show that this button will open in a new tab",
"description": "Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is alt tag of the image in the button."
},
"public.eng.page.video.box.button.text": {
"defaultMessage": "Watch on YouTube",
"description": "Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box button text."
},
"public.eng.page.video.box.title.text": {
"defaultMessage": "Can't make an upcoming session?",
"description": "Navigate to the the public engagement page, there will be box that allows users to watch previously recorded videos. This is that box title text."
},
"public.eng.page.whejac.meeting.day.1.info": {
"defaultMessage": "March 31th (3:00 - 7:30 PM EST)",
"description": "public engagement page event WHEJAC"

View file

@ -339,11 +339,11 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
</div>
</section>
<div
class="grid-row"
class="grid-row grid-gap-6"
data-testid="grid"
>
<div
class="grid-col"
class="grid-col-12 desktop:grid-col-8"
data-testid="grid"
>
<h2>
@ -399,6 +399,40 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
</p>
</div>
<div
class="grid-col-12 desktop:grid-col-4"
data-testid="grid"
>
<div
class="usa-summary-box"
data-testid="summary-box"
>
<div
class="usa-summary-box__body"
>
<h3
class="usa-summary-box__heading"
>
Request for Infomation
</h3>
<div
class="usa-summary-box__text"
>
During the beta period, comments may be submitted on the Climate and Economic Justice Screening Tool via CEQs Request for Information available on
<a
class="usa-link usa-link--external"
data-cy=""
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
federalregister.gov
</a>
.
</div>
</div>
</div>
</div>
</div>
</div>
</main>

View file

@ -420,6 +420,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<div>
<a
data-cy="download-link"
download=""
href="//"
>
<button

View file

@ -6,6 +6,7 @@ import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import LinkTypeWrapper from '../components/LinkTypeWrapper';
import PublicEngageButton from '../components/PublicEngageButton';
import RequestForInfo from '../components/RequestForInfo';
import * as CONTACT_COPY from '../data/copy/contact';
import * as COMMON_COPY from '../data/copy/common';
@ -26,8 +27,10 @@ const ContactPage = ({location}: IContactPageProps) => {
<PublicEngageButton />
</section>
<Grid row>
<Grid col>
<Grid row gap={6}>
{/* First column */}
<Grid desktop={{col: 8}} col={12}>
<h2>
{intl.formatMessage(CONTACT_COPY.PAGE_INTRO.PAGE_SUB_HEADING)}
</h2>
@ -38,12 +41,12 @@ const ContactPage = ({location}: IContactPageProps) => {
defaultMessage={CONTACT_COPY.CONTACT_VIA_EMAIL.DEFAULT_MESSAGE}
values={{
general_email_address:
<LinkTypeWrapper
linkText= {COMMON_COPY.FEEDBACK_EMAIL}
internal= {false}
url= {`mailto:${COMMON_COPY.FEEDBACK_EMAIL}`}
openUrlNewTab= {true}
/>,
<LinkTypeWrapper
linkText= {COMMON_COPY.FEEDBACK_EMAIL}
internal= {false}
url= {`mailto:${COMMON_COPY.FEEDBACK_EMAIL}`}
openUrlNewTab= {true}
/>,
}}/>
</p>
<h3>{CONTACT_COPY.CENSUS_TRACT_FEEDBACK.TITLE}</h3>
@ -51,6 +54,11 @@ const ContactPage = ({location}: IContactPageProps) => {
<p>{CONTACT_COPY.CENSUS_TRACT_FEEDBACK.PARAGRAPH2}</p>
<p>{CONTACT_COPY.CENSUS_TRACT_FEEDBACK.PARAGRAPH3}</p>
</Grid>
{/* Second Column */}
<Grid desktop={{col: 4}} col={12}>
<RequestForInfo />
</Grid>
</Grid>
</J40MainGridContainer>
</Layout>

View file

@ -1,10 +1,11 @@
import * as React from 'react';
import {Grid, Collection} from '@trussworks/react-uswds';
import {Collection, Grid} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import PublicEvent from '../components/PublicEvent';
import PublicVideoBox from '../components/PublicVideoBox';
import * as PUBLIC_ENG_COPY from '../data/copy/publicEngage';
@ -15,10 +16,6 @@ interface IPublicEngagementPageProps {
const PublicEngagementPage = ({location}: IPublicEngagementPageProps) => {
const intl = useIntl();
// TODO: filter events by date
const futureEvents = PUBLIC_ENG_COPY.EVENTS;
// const pastEvents
return (
<Layout location={location} title={intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_TILE)}>
@ -26,16 +23,18 @@ const PublicEngagementPage = ({location}: IPublicEngagementPageProps) => {
<h1>{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_HEADING1)}</h1>
<Grid row tablet={{col: 8}} desktop={{col: 7}}>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION1)}
</p>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION2)}
</p>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION3)}
</p>
<Grid row>
<Grid desktop={{col: 8}}>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION1)}
</p>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION2)}
</p>
<p>
{intl.formatMessage(PUBLIC_ENG_COPY.PAGE_INTRO.PAGE_DESCRIPTION3)}
</p>
</Grid>
</Grid>
<Grid row>
@ -44,13 +43,18 @@ const PublicEngagementPage = ({location}: IPublicEngagementPageProps) => {
</h2>
</Grid>
<Collection>
{futureEvents.map((event, index) => <PublicEvent key={index} event={event} />)}
</Collection>
<Grid row>
{/* Empty Spacer */}
<Grid row gap={6}>
<Grid desktop={{col: 8}}>
<Collection>
{PUBLIC_ENG_COPY.EVENTS.map((event, index) => <PublicEvent key={index} event={event} />)}
</Collection>
</Grid>
<Grid desktop={{col: 4}}>
<PublicVideoBox />
</Grid>
</Grid>
</J40MainGridContainer>
</Layout>
);

View file

@ -26,6 +26,7 @@ There are 3 things that should be included in this file:
-- Map styles
-- Public Event styles
-- About styles
-- Summary box
*/
@ -145,7 +146,8 @@ components include:
******************************
*/
.j40-footer {
@include u-margin-top(4);
.usa-footer__primary-section.pb2{
@include u-padding-bottom(2);
}
@ -367,3 +369,12 @@ a.mapboxgl-ctrl-logo {
}
}
}
/*
******************************
* SUMMARY BOX STYLES
******************************
*/
.usa-summary-box__heading {
@include u-margin-bottom(2);
}