Re-order nav links, update download box to include shapefiles, squish pages (#1538)

* Re-order nav links, update download box to include shapefiles, squishy pages (#1536)

* Add dropdown to navigation links

- add download page
- move main pages tests to their own folder
- add download and public eng snapshot test
- remove public engagement button on each page
- swap index with cejst
- update cypress ENDPOINTS
- upate gatsby-config sitemap
- update snapshots
- cypress tests are failing

* Make all page endpoints constants

- fix all cypress tests
- refactor all test to use LegacyTests/constants/PAGES_ENDPOINTS
- gatsby-config to use PAGES_ENDPOINTS
- remove ScoreStepList component
- update J40Header to use constants.PAGES_ENDPOINTS
- update snapshots
- there are 3 locations to update PAGES_ENDPOINTS, namely

1. LegacyTests/constants.tsx
2. constants.tsx
3. gatsby-config

* Add two placeholder pages

- FAQs
- TSD

* remove dropdown from navigation menu

- remove dropdown from gherkin tests
- update snapshots

* Add back public engagement button to all pages

- add send button in area detail alt tag to i18n
- modify public engagement button to have same CSS as send feedback button
- update snapshots

* Update download box to include shapefile downloads

- refator download packet scss
- add shapefile URL to .env files
- update tests
- index forwarding pattern
- update snapshots

* Add FAQ link to About page

* Update footer

- add PEC
- add RFI
- add github link

* Update the staging link URL and title

* Update download Box to match design sync

- update FAQ link copy

* Add comment for reason of commented code
This commit is contained in:
Vim 2022-04-07 13:14:54 -04:00 committed by GitHub
parent 69edbe520e
commit 92501e4715
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
71 changed files with 4400 additions and 605 deletions

View file

@ -90,8 +90,8 @@ jobs:
with:
# Deploy to S3 for the staging URL
message: |
**🚢 PR Deployed! 🚢**
Find it here: http://usds-geoplatform-justice40-website.s3-website-us-east-1.amazonaws.com/justice40-tool/${{env.DESTINATION_FOLDER}}/en/cejst/ !
**🚢 Here is the frontend staging link: 🚢**
Find it here: http://usds-geoplatform-justice40-website.s3-website-us-east-1.amazonaws.com/justice40-tool/${{env.DESTINATION_FOLDER}}/en/ !
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token-user-login: "github-actions[bot]" # The user.login for temporary GitHub tokens
allow-repeats: false # This is the default

View file

@ -10,6 +10,8 @@ GATSBY_DATA_PIPELINE_SCORE_PATH_LOCAL=data_pipeline/data/score
GATSBY_DATA_PIPELINE_SCORE_PATH=data-pipeline/data/score
GATSBY_SCORE_DOWNLOAD_FILE_PATH=downloadable/Screening_Tool_Data.zip
GATSBY_SHAPE_FILE_PATH=shapefile/usa.zip
GATSBY_MAP_TILES_PATH=tiles
# If you want the map to render a MapBox base map (as opposed to the

View file

@ -7,4 +7,5 @@ GATSBY_CDN_TILES_BASE_URL=https://static-data-screeningtool.geoplatform.gov
GATSBY_DATA_PIPELINE_SCORE_PATH=data-pipeline/data/score
GATSBY_SCORE_DOWNLOAD_FILE_PATH=downloadable/Screening_Tool_Data.zip
GATSBY_SHAPE_FILE_PATH=shapefile/usa.zip
GATSBY_MAP_TILES_PATH=tiles

View file

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

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" 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

@ -12,14 +12,11 @@
*
*/
const endpoints = [
'en/',
'en/cejst',
'en/methodology',
'en/contact',
'en/404',
'en/public-engagement',
];
import {PAGES_ENDPOINTS} from './constants';
const rawEndpoints = Object.values(PAGES_ENDPOINTS);
const endpoints = rawEndpoints.map((endpoint) => `en${endpoint}`);
// The violation callback will post the violations into the terminal
// eslint-disable-next-line require-jsdoc

View file

@ -1,13 +1,9 @@
// / <reference types="Cypress" />
import {PAGES_ENDPOINTS} from '../LegacyTests/constants';
describe('Do all the English pages have all links with a defined href attribute?', () => {
const pages = [
'/',
'cejst',
'methodology',
'contact',
'public-engagement',
];
const pages = Object.values(PAGES_ENDPOINTS);
pages.forEach((page) => {
it(`test all href attr on ${page} page`, () => {

View file

@ -1,7 +1,10 @@
export const ENDPOINTS = {
ABOUT: 'en/',
EXPLORE_THE_TOOL: '/en/cejst',
METHODOLOGY: '/en/methodology',
CONTACT: 'en/contact',
PUBLIC: 'en/public-engagement',
export const PAGES_ENDPOINTS = {
EXPLORE: '/',
METHODOLOGY: '/methodology',
DOWNLOADS: '/downloads',
TSD: '/technical-support-document',
ABOUT: '/about',
FAQS: '/frequently-asked-questions',
PUBLIC_ENG: '/public-engagement',
CONTACT: '/contact',
};

View file

@ -1,23 +1,23 @@
// / <reference types="Cypress" />
describe('Does the Census Block Group packet download?', () => {
const filename = `Screening_Tool_Data.zip`;
it('validate file download', () => {
cy.visit('localhost:8000/en/methodology');
// describe('Does the Census Block Group packet download?', () => {
// const filename = `Screening_Tool_Data.zip`;
// it('validate file download', () => {
// cy.visit('localhost:8000/en/methodology');
cy.get('[data-cy="download-link"]').invoke('attr', 'target', '_blank');
cy.intercept('GET', '/data-pipeline/data/score/downloadable/Screening_Tool_Data.zip',
{
hostname: 'https://d3jqyw10j8e7p9.cloudfront.net',
body: 'success',
headers: {
'Content-Type': 'text/html; charset=utf-8',
'Content-Disposition': 'attachment',
},
},
).as('downloadRequest');
cy.get('button[class*="downloadPacket"]').click();
cy.wait('@downloadRequest');
cy.readFile(`cypress/downloads/${filename}`).should('exist');
});
});
// cy.get('[data-cy="download-link"]').invoke('attr', 'target', '_blank').invoke('attr', 'download');
// cy.intercept('GET', '/data-pipeline/data/score/downloadable/Screening_Tool_Data.zip',
// {
// hostname: 'https://d3jqyw10j8e7p9.cloudfront.net',
// body: 'success',
// headers: {
// 'Content-Type': 'text/html; charset=utf-8',
// 'Content-Disposition': 'attachment',
// },
// },
// ).as('downloadRequest');
// cy.get('button[class*="downloadPacket"]').click();
// cy.wait('@downloadRequest');
// cy.readFile(`cypress/downloads/${filename}`).should('exist');
// });
// });

View file

@ -1,11 +1,14 @@
// / <reference types="Cypress" />
describe('Translation Test', () => {
it('Sets default language to /en and redirects', () => {
cy.visit('http://localhost:8000');
cy.url().should('include', '/en/');
cy.get('[data-cy=about-page-heading]').contains('About');
});
import {PAGES_ENDPOINTS} from './constants';
describe('Navigate to each endpoint', () => {
Object.values(PAGES_ENDPOINTS).map((endpoint) =>
it(`for the ${endpoint} page, it adds /en and redirects`, () => {
cy.visit(endpoint);
cy.url().should('include', '/en/');
}),
);
// Todo VS: Understand how to create es content
// it('Sets page content to spanish when visiting Spanish URL', () => {

View file

@ -4,7 +4,7 @@
A risk with this test is that if the feature/area that is currently being selected become non-prioritized, then this
test will fail. However it would be a major win for that area!
*/
import {ENDPOINTS} from './constants';
import {PAGES_ENDPOINTS} from './constants';
const devices = [
[1024, 720],
@ -15,7 +15,7 @@ const devices = [
describe('tests that the map side panel renders MapIntroduction component', () => {
devices.forEach((device) => {
it(`should render MapIntroduction component on ${device[0]} x ${device[1]}`, () => {
cy.visit(ENDPOINTS.EXPLORE_THE_TOOL);
cy.visit(PAGES_ENDPOINTS.EXPLORE);
cy.viewport(device[0], device[1]);
cy.get('aside').should('be.visible');
});

View file

@ -1,8 +1,9 @@
// / <reference types="Cypress" />
import {PAGES_ENDPOINTS} from '../LegacyTests/constants';
describe('Does the map zoom and adjust to lat/long correctly?', () => {
it('should start at zoom level 3', () => {
cy.visit('http://localhost:8000/en/cejst');
cy.visit(PAGES_ENDPOINTS.EXPLORE);
cy.url().should('include', '#3');
});
it('should change to level 4 when you hit the zoom button', () => {
@ -10,7 +11,7 @@ describe('Does the map zoom and adjust to lat/long correctly?', () => {
cy.url().should('include', '#4');
});
// Intermittent failure still exist
// Intermittent failure still exist ticket #886
// it('should show the correct lat/lng coordinates in the URL',
// {
// retries: {
@ -47,6 +48,7 @@ describe('Does the map zoom and adjust to lat/long correctly?', () => {
// },
// () => {
// const [expectedZoom, expectedLat, expectedLng] = [12.05, 41.40965, -75.65978];
// //This could be where the issue is:
// const expectedURL = `http://localhost:8000/en/cejst/#${expectedZoom}/${expectedLat}/${expectedLng}`;
// cy.visit(expectedURL);
// cy.getMap().then((map) => {

View file

@ -1,5 +1,7 @@
// / <reference types="Cypress" />
import {PAGES_ENDPOINTS} from './constants';
describe('Will it zoom into territories correctly?',
{
retries: {
@ -16,7 +18,7 @@ describe('Will it zoom into territories correctly?',
() => {
beforeEach(() => {
cy.viewport('macbook-13');
cy.visit('http://localhost:8000/en/cejst');
cy.visit(PAGES_ENDPOINTS.EXPLORE);
});
// The below values all assume a 13-inch MB as set in viewport above.

View file

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

View file

@ -2,17 +2,22 @@
// Common step definitions for Gherkin
import {ENDPOINTS} from '../../integration/LegacyTests/constants';
import {PAGES_ENDPOINTS} from '../../integration/LegacyTests/constants';
import {hyphenizeString} from '../../integration/common/helpers';
// Common Givens:
Given('I am on the {string} page', (page) => {
const pageArray = page.split(' ');
cy.viewport(1060, 800);
cy.visit(ENDPOINTS[pageArray.join('_').toUpperCase()]);
cy.visit(PAGES_ENDPOINTS[pageArray.join('_').toUpperCase()]);
});
// Common Whens:
When(`I click on the {string} dropdown in the navigation`, (page) => {
const pageHyphenCase = hyphenizeString(page);
cy.get(`[data-cy="nav-dropdown-${pageHyphenCase}"]`).click();
});
When(`I click on the {string} page in the navigation`, (page) => {
const pageHyphenCase = hyphenizeString(page);
cy.get(`[data-cy="nav-link-${pageHyphenCase}"]`).click();

View file

@ -83,11 +83,12 @@ module.exports = {
options: {
excludes: [
'/',
'/cejst',
'/about',
'/contact',
'/methodology',
'/404',
'public-engagement',
'/public-engagement',
'/downloads',
],
},
},

View file

@ -6,7 +6,7 @@ import {hyphenizeString} from '../../../cypress/integration/common/helpers';
// the "body" section is the child object to allow for html versus just text
interface AboutCardProps {
imgSrc: string;
imgSrc?: string;
header: string;
size: 'small' | 'large';
linkText?: string;
@ -25,10 +25,10 @@ const AboutCard = (props: React.PropsWithChildren<AboutCardProps>) => {
<Grid tablet={{col: true}} gap={'lg'} className={(props.className || '')}>
<Grid row className={'j40-aboutcard-lg-card'}>
<Grid tablet={{col: 3}} className={'j40-aboutpage-image-container'}>
<img
{props.imgSrc && <img
className={'j40-aboutcard-image'}
alt={props.header}
src={props.imgSrc}/>
src={props.imgSrc}/>}
</Grid>
<Grid tablet={{col: 9}} data-cy={`${hyphenizeString(props.header)}-block`}>

View file

@ -617,7 +617,7 @@ const AreaDetail = ({properties}:IAreaDetailProps) => {
<img
className={styles.buttonImage}
src={mailIcon}
alt={'tbd'}
alt={intl.formatMessage(EXPLORE_COPY.COMMUNITY.SEND_FEEDBACK.IMG_ICON.ALT_TAG)}
/>
</div>
</Button>

View file

@ -76,7 +76,7 @@ exports[`rendering of the AreaDetail checks if indicators for ISLAND AREAS are p
Send feedback
</div>
<img
alt="tbd"
alt="Send feedback"
src="test-file-stub"
/>
</div>
@ -429,7 +429,7 @@ exports[`rendering of the AreaDetail checks if indicators for NATION is present
Send feedback
</div>
<img
alt="tbd"
alt="Send feedback"
src="test-file-stub"
/>
</div>
@ -2133,7 +2133,7 @@ exports[`rendering of the AreaDetail checks if indicators for PUERTO RICO are pr
Send feedback
</div>
<img
alt="tbd"
alt="Send feedback"
src="test-file-stub"
/>
</div>

View file

@ -8,6 +8,7 @@ import {hyphenizeString} from '../../../cypress/integration/common/helpers';
import * as styles from './dsContainer.module.scss';
import * as METHODOLOGY_COPY from '../../data/copy/methodology';
import {PAGES_ENDPOINTS} from '../../data/constants';
const DatasetContainer = () => {
@ -43,7 +44,7 @@ const DatasetContainer = () => {
</Grid>
<div className={styles.returnToTop}>
<Link to={`/methodology`}>
<Link to={PAGES_ENDPOINTS.METHODOLOGY}>
{METHODOLOGY_COPY.RETURN_TO_TOP.LINK}
</Link>
</div>

View file

@ -0,0 +1,73 @@
import React from 'react';
import {Button, Grid, Tag} from '@trussworks/react-uswds';
import * as styles from './downloadPacket.module.scss';
import * as METHODOLOGY_COPY from '../../data/copy/methodology';
// @ts-ignore
import downloadIcon from '/node_modules/uswds/dist/img/usa-icons/file_download.svg';
const DownloadPacket = () => {
return (
<Grid>
<div className={styles.downloadBoxContainer}>
<div className={styles.downloadBox}>
<div className={styles.downloadBoxTextBox}>
{/* Download box title */}
<div className={styles.downloadBoxTitle}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.TITLE}
</div>
{/* Download box description 1 */}
<div className={styles.dataSourceText}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.DESCRIPTION1}
</div>
{/* Download box button 1 */}
<div className={styles.dataSourceButtonContainer}>
<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'}/>
</div>
<div className={styles.dataSourceButtonText}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.BUTTON_TEXT1}
</div>
</Button>
</a>
</div>
<div className={styles.lastUpdated}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.LAST_UPDATED}
</div>
{/* Download box button 2 */}
<div className={styles.shapefileButtonContainer}>
<div className={styles.newTagContainer}>
<Tag className={styles.newtag}>{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.NEW_TAG}</Tag>
</div>
<a data-cy={'shapefile-link'} download href={METHODOLOGY_COPY.DOWNLOAD_SHAPEFILE_URL}>
<Button className={styles.downloadBoxButton} type="button">
<div>
<img src={downloadIcon} alt={'download icon for download package'}/>
</div>
<div className={styles.shapeFileButtonText}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.BUTTON_TEXT2}
</div>
</Button>
</a>
</div>
<div className={styles.lastUpdated}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.LAST_UPDATED}
</div>
</div>
</div>
</div>
</Grid>
);
};
export default DownloadPacket;

View file

@ -0,0 +1,85 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`download packet component defined checks if component renders 1`] = `
<DocumentFragment>
<div
class=""
data-testid="grid"
>
<div>
<div>
<div>
<div>
Files available for download
</div>
<div>
Download the data sources used in the CEJST (.csv and .xlsx, 52MB unzipped) or the shapefile, along with a codebook (.zip, 742MB unzipped).
</div>
<div>
<a
data-cy="download-link"
download=""
href="//"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<img
alt="download icon for download package"
src="test-file-stub"
/>
</div>
<div>
Download data sources
</div>
</button>
</a>
</div>
<div>
Last updated: 04/06/22
</div>
<div>
<div>
<span
class="usa-tag"
data-testid="tag"
>
<strong>
NEW
</strong>
</span>
</div>
<a
data-cy="shapefile-link"
download=""
href="//"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<img
alt="download icon for download package"
src="test-file-stub"
/>
</div>
<div>
Download shapefile
</div>
</button>
</a>
</div>
<div>
Last updated: 04/06/22
</div>
</div>
</div>
</div>
</div>
</DocumentFragment>
`;

View file

@ -1,7 +1,33 @@
@use '../../styles/design-system.scss' as *;
.downloadBoxContainer {
@mixin baseButtonContainerStyles {
align-self: center;
@include u-margin-top(2);
a {
text-decoration: none;
}
img {
// This should be a global css-filter value as it's generated
// from the primary color.
filter: invert(15%) sepia(9%) saturate(5666%) hue-rotate(175deg) brightness(96%) contrast(95%);
}
}
@mixin baseTextStyle {
@include typeset('sans', 'xs', 3);
@include u-margin-top(2);
@include u-margin-bottom(2);
};
@mixin baseButtonTextStyle {
padding-top: 4px;
padding-left: 5px;
}
.downloadBoxContainer {
color: whitesmoke;
margin: auto;
@include u-margin-top(2.5);
@ -19,44 +45,63 @@
.downloadBoxTitle {
@include typeset('sans', 'xs', 3);
@include u-text('semibold');
@include u-margin-bottom(2);
}
.downloadBoxText {
@include typeset('sans', 'xs', 3);
@include u-margin-bottom(4);
span {
font-style: italic;
}
// Data source text
.dataSourceText {
@include baseTextStyle();
}
.downloadBoxButtonContainer {
margin-top: 20px 0 0 0;
// Last updated
.lastUpdated {
font-style: italic;
align-self: center;
a {
text-decoration: none;
}
img {
// This should be a global css-filter value as it's generated
// from the primary color.
filter: invert(15%) sepia(9%) saturate(5666%) hue-rotate(175deg) brightness(96%) contrast(95%);
}
@include u-margin-top(1);
}
.downloadBoxButton{
@include u-bg('white');
@include u-color('blue-80v');
display: flex;
// Data source button
.dataSourceButtonContainer {
@include baseButtonContainerStyles();
.downloadPacketText {
padding-top: 4px;
padding-left: 5px;
.dataSourceButtonText {
@include baseButtonTextStyle();
}
}
// Shapefile text
.shapeFileText {
@include baseTextStyle();
@include u-margin-top(7);
}
// Shapefile button
.shapefileButtonContainer{
display: flex;
flex-direction: column;
@include baseButtonContainerStyles();
.shapeFileButtonText {
@include baseButtonTextStyle();
@include u-margin-right(3);
}
}
}
}
}
}
.downloadBoxButton{
@include u-bg('white');
@include u-color('blue-80v');
display: flex;
}
.newTagContainer {
align-self: end;
@include u-margin-bottom(-1);
z-index: 2;
}
.newtag {
@include u-text("blue-70v");
@include u-bg("yellow-20v");
}

View file

@ -4,10 +4,16 @@ declare namespace DownloadPacketModuleScssNamespace {
downloadBox: string;
downloadBoxTextBox: string;
downloadBoxTitle: string;
downloadBoxText: string;
downloadBoxButtonContainer: string;
dataSourceText: string;
dataSourceButtonContainer: string;
shapefileButtonContainer: string;
downloadBoxButton: string;
downloadPacketText: string;
dataSourceButtonText: string;
shapeFileText: string;
shapeFileButtonText: string;
newTagContainer: string;
newtag: string;
lastUpdated:string;
}
}

View file

@ -1,15 +1,17 @@
import * as React from 'react';
import {render, screen} from '@testing-library/react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import DownloadPacket from '.';
import DownloadPacket from './DownloadPacket';
test('download packet component defined', () => {
render(
describe('download packet component defined', () => {
const {asFragment} = render(
<LocalizedComponent>
<DownloadPacket />
</LocalizedComponent>,
);
screen.getByRole('button', {name: /download package/i});
it('checks if component renders', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -1,45 +1,3 @@
import React from 'react';
import {Button, Grid} from '@trussworks/react-uswds';
import * as styles from './downloadPacket.module.scss';
import * as METHODOLOGY_COPY from '../../data/copy/methodology';
// @ts-ignore
import downloadIcon from '/node_modules/uswds/dist/img/usa-icons/file_download.svg';
const DownloadPacket = () => {
return (
<Grid>
<div className={styles.downloadBoxContainer}>
<div className={styles.downloadBox}>
<div className={styles.downloadBoxTextBox}>
<div className={styles.downloadBoxTitle}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.TITLE}
</div>
<div className={styles.downloadBoxText}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.DESCRIPTION}
{' '}
<span>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.LAST_UPDATED}
</span>
</div>
<div className={styles.downloadBoxButtonContainer}>
<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'}/>
</div>
<div className={styles.downloadPacketText}>
{METHODOLOGY_COPY.DOWNLOAD_PACKAGE.BUTTON_TEXT}
</div>
</Button>
</a>
</div>
</div>
</div>
</div>
</Grid>
);
};
import DownloadPacket from './DownloadPacket';
export default DownloadPacket;

View file

@ -13,6 +13,7 @@ import SurveyButton from '../SurveyButton';
// @ts-ignore
import whitehouseIcon from '../../images/eop-seal.svg';
import {PAGES_ENDPOINTS} from '../../data/constants';
import * as COMMON_COPY from '../../data/copy/common';
const J40Footer = () => {
@ -35,12 +36,28 @@ const J40Footer = () => {
],
[
intl.formatMessage(COMMON_COPY.FOOTER.MORE_INFO),
<LinkTypeWrapper
linkText={intl.formatMessage(COMMON_COPY.FOOTER.ENG_CAL)}
internal={true}
url={PAGES_ENDPOINTS.PUBLIC_ENG}
openUrlNewTab={false}
className={'footer-link-first-child'}
key={'publiceng'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.ENG_CAL.defaultMessage)}
/>,
<LinkTypeWrapper
linkText={intl.formatMessage(COMMON_COPY.FOOTER.RFI)}
internal={false}
url={intl.formatMessage(COMMON_COPY.FOOTER.RFI_LINK)}
openUrlNewTab={true}
key={'rfilink'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.RFI.defaultMessage)}
/>,
<LinkTypeWrapper
linkText={intl.formatMessage(COMMON_COPY.FOOTER.WHITEHOUSE)}
internal={false}
url={intl.formatMessage(COMMON_COPY.FOOTER.WHITEHOUSE_LINK)}
openUrlNewTab={true}
className={'footer-link-first-child'}
key={'whitehouselink2'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.WHITEHOUSE.defaultMessage)}
/>,
@ -60,19 +77,27 @@ const J40Footer = () => {
key={'privacylink'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.PRIVACY.defaultMessage)}
/>,
],
[
intl.formatMessage(COMMON_COPY.FOOTER.QUESTIONS),
<LinkTypeWrapper
linkText={intl.formatMessage(COMMON_COPY.FOOTER.FIND_CONTACT)}
internal={false}
url={intl.formatMessage(COMMON_COPY.FOOTER.FIND_CONTACT_LINK)}
openUrlNewTab={true}
className={'footer-link-first-child'}
key={'contactlink'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.FIND_CONTACT.defaultMessage)}
/>,
],
[
intl.formatMessage(COMMON_COPY.FOOTER.CONTRIBUTE),
<LinkTypeWrapper
linkText={intl.formatMessage(COMMON_COPY.FOOTER.GITHUB_LINK_TEXT)}
internal={false}
url={intl.formatMessage(COMMON_COPY.FOOTER.GITHUB_LINK)}
openUrlNewTab={true}
className={'footer-link-first-child'}
key={'contactlink'}
dataCy={hyphenizeString(COMMON_COPY.FOOTER.GITHUB_LINK_TEXT.defaultMessage)}
/>,
],
];
// see https://designsystem.digital.gov/components/footer/

View file

@ -79,7 +79,30 @@ exports[`J40Footer renders correctly 1`] = `
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
@ -114,6 +137,19 @@ exports[`J40Footer renders correctly 1`] = `
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
@ -124,7 +160,7 @@ exports[`J40Footer renders correctly 1`] = `
<div
class="j40-h4"
>
Have a question about government services?
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
@ -134,12 +170,12 @@ exports[`J40Footer renders correctly 1`] = `
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
Check out the code on GitHub
</a>
</li>
</ul>

View file

@ -6,6 +6,8 @@ import {
PrimaryNav,
Grid,
Alert,
// NavDropDownButton,
// Menu,
} from '@trussworks/react-uswds';
import BetaBanner from '../BetaBanner';
import J40MainGridContainer from '../J40MainGridContainer';
@ -16,43 +18,162 @@ import Language from '../Language';
import siteLogo from '../../images/j40-logo-v2.png';
import * as styles from './J40Header.module.scss';
import * as COMMON_COPY from '../../data/copy/common';
import {PAGES_ENDPOINTS} from '../../data/constants';
const isAlertValid = new Date < COMMON_COPY.ALERTS.EXPIRATION_DATE;
const J40Header = () => {
const intl = useIntl();
const [mobileNavOpen, setMobileNavOpen] = useState(false);
const titleL1 = intl.formatMessage(COMMON_COPY.HEADER.TITLE_LINE_1);
const titleL2 = intl.formatMessage(COMMON_COPY.HEADER.TITLE_LINE_2);
/**
* State variable to control the mobile menu toggle
*/
const [mobileNavOpen, setMobileNavOpen] = useState(false);
const toggleMobileNav = (): void =>
setMobileNavOpen((prevOpen) => !prevOpen);
/**
* The original work of this release called for creating a download page, a FAQ page and TSD page. These
* were to be embedded in dropdown menus in the navigation bar of the header. These were all completed.
* After discovering that the dropdown component from USWDS was not operating as expected, we decided to
* revert to another design.
*
* It was also decided that some more design was needed and that these pages along with their designs will
* be used in the near future. Rather than deleted the code or moving it to another branch, the assumption
* was made that since this will be added back in the near term, let's comment it out for now.
*
* If for some reason we haven't integrated this logic in the near future, this code will be deleted.
*/
/**
* State variable to hold the open/close state of each nav dropdown. There are currently two
* dropdowns that are being used, each corresponding to an index in the state array:
*
* index 0 = Data & Methodology dropdown
* index 1 = About dropdown
*/
// const [isOpen, setIsOpen] = useState([false, false]);
// const onToggle = (index: number): void => {
// setIsOpen((prevIsOpen) => {
// const newIsOpen = [false, false];
// newIsOpen[index] = !prevIsOpen[index];
// return newIsOpen;
// });
// };
// const methPageSubNavLinks = [
// <Link
// to={PAGES_ENDPOINTS.METHODOLOGY}
// key={'methodology'}
// activeClassName="usa-current"
// data-cy={'nav-link-methodology'}>
// {intl.formatMessage(COMMON_COPY.HEADER.METHODOLOGY)}
// </Link>,
// <Link
// to={PAGES_ENDPOINTS.DOWNLOADS}
// key={'downloads'}
// activeClassName="usa-current"
// data-cy={'nav-link-downloads'}>
// {intl.formatMessage(COMMON_COPY.HEADER.DOWNLOADS)}
// </Link>,
// <Link
// to={PAGES_ENDPOINTS.TSD}
// key={'tsd'}
// activeClassName="usa-current"
// data-cy={'nav-link-technical-support-docs'}>
// {intl.formatMessage(COMMON_COPY.HEADER.TSD)}
// </Link>,
// ];
// const aboutSubNavLinks = [
// <Link
// to={PAGES_ENDPOINTS.ABOUT}
// key={'about'}
// activeClassName="usa-current"
// data-cy={'nav-link-about'}>
// {intl.formatMessage(COMMON_COPY.HEADER.ABOUT)}
// </Link>,
// <Link
// to={PAGES_ENDPOINTS.FAQS}
// key={'faqs'}
// activeClassName="usa-current"
// data-cy={'nav-link-faqs'}>
// {intl.formatMessage(COMMON_COPY.HEADER.FAQs)}
// </Link>,
// <Link
// to={PAGES_ENDPOINTS.PUBLIC_ENG}
// key={'publicEng'}
// activeClassName="usa-current"
// data-cy={'nav-link-public-engagement'}>
// {intl.formatMessage(COMMON_COPY.HEADER.PUBLIC_ENG)}
// </Link>,
// ];
const navLinks = [
<Link
to={'/'}
key={'about'}
activeClassName="usa-current"
data-cy={'nav-link-about'}>
{intl.formatMessage(COMMON_COPY.HEADER.ABOUT)}
</Link>,
<Link
to={'/cejst'}
key={'cejst'}
to={PAGES_ENDPOINTS.EXPLORE}
key={'explore-tool'}
activeClassName="usa-current"
data-cy={'nav-link-explore-the-tool'}>
{intl.formatMessage(COMMON_COPY.HEADER.EXPLORE)}
</Link>,
<Link
to={'/methodology'}
to={PAGES_ENDPOINTS.METHODOLOGY}
key={'methodology'}
activeClassName="usa-current"
data-cy={'nav-link-methodology'}>
{intl.formatMessage(COMMON_COPY.HEADER.METHODOLOGY)}
</Link>,
<Link
to={'/contact'}
to={PAGES_ENDPOINTS.ABOUT}
key={'about'}
activeClassName="usa-current"
data-cy={'nav-link-about'}>
{intl.formatMessage(COMMON_COPY.HEADER.ABOUT)}
</Link>,
// <>
// <NavDropDownButton
// key="methDropDown"
// label={intl.formatMessage(COMMON_COPY.HEADER.METHODOLOGY)}
// menuId="methMenu"
// isOpen={isOpen[0]}
// onToggle={(): void => onToggle(0)}
// data-cy={'nav-dropdown-methodology'}
// className={styles.navDropDownBtn}
// >
// </NavDropDownButton>
// <Menu
// id='methMenu'
// type='subnav'
// items={methPageSubNavLinks}
// isOpen={isOpen[0]}
// >
// </Menu>
// </>,
// <>
// <NavDropDownButton
// key="aboutDropDown"
// label={intl.formatMessage(COMMON_COPY.HEADER.ABOUT)}
// menuId="aboutMenu"
// isOpen={isOpen[1]}
// onToggle={(): void => onToggle(1)}
// data-cy={'nav-dropdown-about'}
// >
// </NavDropDownButton>
// <Menu
// id='aboutMenu'
// type='subnav'
// items={aboutSubNavLinks}
// isOpen={isOpen[1]}
// >
// </Menu>
// </>,
<Link
to={PAGES_ENDPOINTS.CONTACT}
key={'contact'}
activeClassName="usa-current"
data-cy={'nav-link-contact'}>
@ -93,6 +214,7 @@ const J40Header = () => {
{/* Nav links */}
<Grid col={'fill'} className={styles.navLinks}>
<NavMenuButton
key={'mobileMenuButton'}
onClick={toggleMobileNav}
@ -102,7 +224,8 @@ const J40Header = () => {
items={navLinks}
mobileExpanded={mobileNavOpen}
onToggleMobileNav={toggleMobileNav}
/>
>
</PrimaryNav>
</Grid>
</Grid>

View file

@ -218,22 +218,12 @@ exports[`rendering of the J40Header checks if component renders 1`] = `
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/cejst"
href="/en/"
>
Explore the tool
</a>
@ -248,6 +238,16 @@ exports[`rendering of the J40Header checks if component renders 1`] = `
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>

View file

@ -31,7 +31,9 @@ interface ILinkTypeWrapper {
const LinkTypeWrapper = (props:ILinkTypeWrapper) => {
if (props.internal) {
return (
<Link to={`${props.url}`}>
<Link to={`${props.url}`}
className={props.className}
>
{props.linkText}
</Link>
);

View file

@ -2,6 +2,7 @@ import * as React from 'react';
import {render} from '@testing-library/react';
import LinkTypeWrapper from './index';
import {LocalizedComponent} from '../../test/testHelpers';
import {PAGES_ENDPOINTS} from '../../data/constants';
describe('testing all link types', () => {
it('tests internal links', () => {
@ -10,7 +11,7 @@ describe('testing all link types', () => {
<LinkTypeWrapper
linkText={'test link text'}
internal={true}
url={'/methodology'}
url={PAGES_ENDPOINTS.METHODOLOGY}
openUrlNewTab={false}
/>
</LocalizedComponent>,

View file

@ -20,6 +20,29 @@
.link, .link:visited {
color:white;
text-decoration: none;
.engagementButton{
// @include u-text("blue-70v");
// @include u-bg("yellow-20v");
height: 40px;
// &:hover {
// @include u-bg("yellow-20");
// @include u-text("gray-90");
// }
.buttonContainer{
display: flex;
.buttonImage{
@include u-margin-right(1);
width: 21px;
margin-top: -3px;
filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(119deg) brightness(105%) contrast(101%);
}
}
}
}
}

View file

@ -4,6 +4,10 @@ declare namespace PublicEngagementButton {
tagContainer: string;
container: string;
link: string;
engagementButton: string;
buttonContainer: string;
buttonImage: string;
}
}

View file

@ -5,6 +5,9 @@ import {Button, Tag} from '@trussworks/react-uswds';
import * as styles from './PublicEngageButton.module.scss';
import * as PUBLIC_ENG_COPY from '../../data/copy/publicEngage';
// @ts-ignore
import eventIcon from '/node_modules/uswds/dist/img/usa-icons/event.svg';
const PublicEngageButton = () => {
const intl = useIntl();
@ -16,8 +19,20 @@ const PublicEngageButton = () => {
</Tag>
</div>
<Link className={styles.link} to={'/public-engagement'}>
<Button type={'button'} icon={true}>
{intl.formatMessage(PUBLIC_ENG_COPY.PUBLIC_ENG_BUTTON.LABEL)}
<Button
type="button"
className={styles.engagementButton}
>
<div className={styles.buttonContainer}>
<img
className={styles.buttonImage}
src={eventIcon}
alt={intl.formatMessage(PUBLIC_ENG_COPY.PUBLIC_ENG_BUTTON.IMG_ICON_ALT_TAG)}
/>
<div>
{intl.formatMessage(PUBLIC_ENG_COPY.PUBLIC_ENG_BUTTON.LABEL)}
</div>
</div>
</Button>
</Link>
</div>

View file

@ -15,11 +15,19 @@ exports[`rendering of the PublicEngageButton checks if component renders 1`] = `
href="/en/public-engagement"
>
<button
class="usa-button usa-button--icon"
class="usa-button"
data-testid="button"
type="button"
>
Public Engagement
<div>
<img
alt="an icon that represents a calendar"
src="test-file-stub"
/>
<div>
Public engagement
</div>
</div>
</button>
</a>
</div>

View file

@ -1,91 +0,0 @@
import React from 'react';
import {
ProcessList,
ProcessListItem,
ProcessListHeading,
Grid,
} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import * as METHODOLOGY_COPY from '../data/copy/methodology';
const ScoreStepsList = () => {
const intl = useIntl();
return (
<>
<h2>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.HEADING)}
</h2>
<Grid row>
<Grid col={7}>
<p>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.DESCRIPTION_1)}
</p>
<p>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.DESCRIPTION_2)}
</p>
</Grid>
</Grid>
<ProcessList>
{/* Step 1 */}
<ProcessListItem>
<ProcessListHeading type="h3">
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_HEADING)}
</ProcessListHeading>
<p>{' '}</p>
<p className={'flush'}>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_INFO)}
</p>
{/* Step 1 A */}
<h4>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_A_HEADING)}
</h4>
<p className={'flush'}>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_A_INFO_1)}
</p>
<p>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_A_INFO_2)}
</p>
{/* Step 1 B */}
<h4>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_B_HEADING)}
</h4>
{METHODOLOGY_COPY.COMPLEX_METH_STEPS.STEP_2_B_INFO}
{/* Step 1 C */}
<h4>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_C_HEADING)}
</h4>
<p className={'flush'}>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_1_C_INFO)}
</p>
</ProcessListItem>
{/* Step 2 */}
<ProcessListItem>
<ProcessListHeading type="h3">
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_2_HEADING)}
</ProcessListHeading>
<p>{' '}</p>
<p className={'flush'}>
{intl.formatMessage(METHODOLOGY_COPY.METHODOLOGY_STEPS.STEP_2_INFO)}
</p>
{METHODOLOGY_COPY.COMPLEX_METH_STEPS.FORMULA}
</ProcessListItem>
</ProcessList>
</>
);
};
export default ScoreStepsList;

View file

@ -4,6 +4,18 @@ import {isMobile as isMobileReactDeviceDetect} from 'react-device-detect';
export const isMobile = isMobileReactDeviceDetect;
// Pages URL
export const PAGES_ENDPOINTS = {
EXPLORE: '/',
METHODOLOGY: '/methodology',
DOWNLOADS: '/downloads',
TSD: '/technical-support-document',
ABOUT: '/about',
FAQS: '/frequently-asked-questions',
PUBLIC_ENG: '/public-engagement',
CONTACT: '/contact',
};
// Performance markers
export const PERFORMANCE_MARKER_MAP_IDLE = 'MAP_IDLE';

View file

@ -1,6 +1,8 @@
import React from 'react';
import {defineMessages} from 'react-intl';
import {FormattedMessage, Link} from 'gatsby-plugin-intl';
import {FormattedMessage} from 'gatsby-plugin-intl';
import {linkFn} from './common';
import {PAGES_ENDPOINTS} from '../constants';
export const PAGE = defineMessages({
TITLE: {
@ -24,11 +26,10 @@ export const ERROR_MSG =
<FormattedMessage
id={'pageNotFound.apology.text'}
defaultMessage={`
Sorry, the page you were looking for was not found. Click {home} to go home.
Sorry, the page you were looking for was not found. Click <link1>home</link1> to go home.
`}
description={'page description'}
description={'main error message'}
values={{
home: <Link to={'/'}>here</Link>,
homeEs: <Link to={'/methodology'}>aqui</Link>,
link1: linkFn(PAGES_ENDPOINTS.METHODOLOGY, true, false),
}}
/>;

View file

@ -5,6 +5,7 @@ import {FormattedMessage} from 'gatsby-plugin-intl';
import {italicFn, linkFn} from './common';
export const EXEC_ORDER_LINK = 'https://www.federalregister.gov/documents/2021/02/01/2021-02177/tackling-the-climate-crisis-at-home-and-abroad#:~:text=Sec.%20223.%20Justice40,40-percent%20goal.';
export const FAQS_LINK = 'https://www.whitehouse.gov/wp-content/uploads/2022/02/CEQ-CEJST-QandA.pdf';
export const PAGE = defineMessages({
TILE: {
@ -45,6 +46,12 @@ export const PAGE = defineMessages({
`,
description: 'Navigate to the About page. This is the third heading description',
},
HEADING_3: {
id: 'about.page.sub.header.3.text',
defaultMessage: 'Still have questions?',
description: 'Navigate to the About page. This is the fourth heading',
},
});
export const HEADING_1 = {
@ -66,6 +73,18 @@ export const HEADING_1 = {
}}
/>,
};
export const HEADING_3 = {
DESCRIPTION_1:
<FormattedMessage
id={'about.page.sub.header.3.text.1'}
defaultMessage={`Find answers on the Climate and Economic Justice Screening Tool's <link1>Frequently Asked Questions</link1>.
`}
description={'Navigate to the About page. This is the second heading description'}
values={{
link1: linkFn(FAQS_LINK, false, true),
}}
/>,
};
export const HEADING_2 = {
DESCRIPTION_2:

View file

@ -17,6 +17,7 @@ export const simpleLink = (href:string) => (str:string) => <a href={href}>{str}<
// eslint-disable-next-line max-len
export const linkFn = (to:string, isInternal:boolean, isOpenNewTab:boolean) => (str:string) => <LinkTypeWrapper linkText={str} internal={isInternal} url={to} openUrlNewTab={isOpenNewTab}/>;
export const RFI_LINK = `https://www.federalregister.gov/d/2022-03920`;
export const FEEDBACK_EMAIL = 'Screeningtool-Support@omb.eop.gov';
@ -89,6 +90,26 @@ export const HEADER = defineMessages({
defaultMessage: 'Contact',
description: 'Navigate to the about page. This is Header navigate item to the Contact page',
},
DOWNLOADS: {
id: 'common.pages.header.downloads',
defaultMessage: 'Downloads',
description: 'Navigate to the about page. This is Header navigate item to the downloads page',
},
FAQs: {
id: 'common.pages.header.faqs',
defaultMessage: 'Frequently asked questions',
description: 'Navigate to the about page. This is Header navigate item to the faqs page',
},
PUBLIC_ENG: {
id: 'common.pages.header.public.eng',
defaultMessage: 'Engagement calendar',
description: 'Navigate to the about page. This is Header navigate item to the public eng page',
},
TSD: {
id: 'common.pages.header.tsd',
defaultMessage: 'Technical Support Document',
description: 'Navigate to the about page. This is Header navigate item to the technical support document page',
},
});
// Footer
@ -108,6 +129,21 @@ export const FOOTER = defineMessages({
defaultMessage: 'More information',
description: 'Navigate to the about page. This is Footer column header',
},
ENG_CAL: {
id: 'common.pages.footer.eng.cal.text',
defaultMessage: 'Engagement calender',
description: 'Navigate to the about page. This is Footer eng.cal.gov link text',
},
RFI: {
id: 'common.pages.footer.rfi.text',
defaultMessage: 'Request for Infomation',
description: 'Navigate to the about page. This is Footer rfi link text',
},
RFI_LINK: {
id: 'common.pages.footer.rfi.link',
defaultMessage: RFI_LINK,
description: 'Navigate to the about page. This is Footer rfi link',
},
WHITEHOUSE: {
id: 'common.pages.footer.whitehouse.text',
defaultMessage: 'Whitehouse.gov',
@ -138,11 +174,6 @@ export const FOOTER = defineMessages({
defaultMessage: 'Whitehouse logo',
description: 'Navigate to the about page. This is Footer Whitehouse logo alt text',
},
QUESTIONS: {
id: 'common.pages.footer.questionsheader',
defaultMessage: 'Have a question about government services?',
description: 'Navigate to the about page. This is Footer column header',
},
FIND_CONTACT: {
id: 'common.pages.footer.findcontact',
defaultMessage: 'Find a contact at USA.gov',
@ -153,6 +184,21 @@ export const FOOTER = defineMessages({
defaultMessage: 'https://www.usa.gov/',
description: 'Navigate to the about page. This is Footer find contact link text',
},
CONTRIBUTE: {
id: 'common.pages.footer.contribute.header',
defaultMessage: 'Want to contribute?',
description: 'Navigate to the about page. This is third Footer column header',
},
GITHUB_LINK_TEXT: {
id: 'common.pages.footer.github.link.text',
defaultMessage: 'Check out the code on GitHub',
description: 'Navigate to the about page. This is Footer github link text',
},
GITHUB_LINK: {
id: 'common.pages.footer.findcontact.link',
defaultMessage: 'https://github.com/usds/justice40-tool',
description: 'Navigate to the about page. This is Footer find contact link text',
},
CONTACT: {
id: 'common.pages.footer.contactheader',
defaultMessage: 'Contact',

View file

@ -3,6 +3,8 @@ import React from 'react';
import {defineMessages} from 'react-intl';
import {FormattedMessage} from 'gatsby-plugin-intl';
import * as COMMON_COPY from './common';
import {PAGES_ENDPOINTS} from '../constants';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
@ -45,7 +47,7 @@ export const RFI_BOX_BODY = <FormattedMessage
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),
link1: COMMON_COPY.linkFn(COMMON_COPY.RFI_LINK, false, true),
}}
/>;
@ -63,7 +65,7 @@ export const CENSUS_TRACT_FEEDBACK = {
`}
description={'Navigate to the contact page, this is the census tract feedback section'}
values={{
link1: COMMON_COPY.linkFn('/cejst', true, false),
link1: COMMON_COPY.linkFn(PAGES_ENDPOINTS.EXPLORE, true, false),
}}
/>,
PARAGRAPH2: <FormattedMessage

View file

@ -0,0 +1,79 @@
/* eslint-disable max-len */
import React from 'react';
import {defineMessages} from 'react-intl';
import {FormattedMessage, FormattedNumber} from 'gatsby-plugin-intl';
import {simpleLink} from './common';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
id: 'downloads.page.title.text',
defaultMessage: 'Downloads',
description: 'Navigate to the the Downloads page, this will be the page title text',
},
PAGE_HEADING1: {
id: 'downloads.page.heading1.text',
defaultMessage: 'Downloads',
description: 'Navigate to the the Downloads page, this will be the page heading1 text',
},
PAGE_HEADING2: {
id: 'downloads.page.heading2.text',
defaultMessage: 'File formats',
description: 'Navigate to the the Downloads page, this will be the page heading2 text',
},
PAGE_DESCRIPTION1: {
id: 'downloads.page.heading1.text',
defaultMessage: 'The dataset used in the tool, along with a data dictionary and information about how to use the list of communities (.pdf) are available in the following file formats:',
description: 'Navigate to the the Downloads page, this will be the page heading1 text',
},
});
export const DOWNLOAD_LINKS = {
EXCEL: <FormattedMessage
id={'downloads.page.excel.link'}
defaultMessage={`
<link1>Excel file</link1> (.xlxs {excelFileSize} unzipped)
`}
description={'On the downloads page, the description of the excel link'}
values={{
link1: (str:string) => <a href='/about'>{str}</a>,
excelFileSize: <FormattedNumber
value={54}
style="unit"
unit="megabyte"
unitDisplay="narrow"
/>,
}}
/>,
CSV: <FormattedMessage
id={'downloads.page.csv.link'}
defaultMessage={`
<link1>CSV file </link1> (.csv {csvFileSize} unzipped)
`}
description={'On the downloads page, the description of the csv link'}
values={{
link1: simpleLink('/csv'),
csvFileSize: <FormattedNumber
value={52}
style="unit"
unit="megabyte"
unitDisplay="narrow"
/>,
}}
/>,
SHAPE: <FormattedMessage
id={'downloads.page.shape.link'}
defaultMessage={`
<link1>Shapefiles </link1> (Codebook included with geojson {shapeFileSize} unzipped)
`}
description={'On the downloads page, the description of the shapefiles link'}
values={{
link1: simpleLink('/shape'),
shapeFileSize: <FormattedNumber
value={110}
style="unit"
unit="megabyte"
unitDisplay="narrow"
/>,
}}
/>,
};

View file

@ -7,6 +7,7 @@ import {FormattedDate, FormattedMessage, FormattedNumber} from 'gatsby-plugin-in
import * as COMMON_COPY from './common';
import * as METHODOLOGY_COPY from './methodology';
import {simpleLink, linkFn} from './common';
import {PAGES_ENDPOINTS} from '../constants';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
@ -31,7 +32,7 @@ export const PAGE_DESCRIPTION = <FormattedMessage
`}
description={'On the explore the tool page, the description of the page'}
values={{
link1: linkFn('/methodology', true, false),
link1: linkFn(PAGES_ENDPOINTS.METHODOLOGY, true, false),
}}
/>;
@ -289,6 +290,13 @@ export const COMMUNITY = {
defaultMessage={ 'Send feedback'}
description={`Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show link to send feedback`}
/>,
IMG_ICON: defineMessages({
ALT_TAG: {
id: 'explore.tool.page.side.panel.send.feedback.alt.img',
defaultMessage: 'Send feedback',
description: `Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show a send feedback icon, this is the images alt tag`,
},
}),
},
};
@ -795,7 +803,7 @@ export const NOTE_ON_TERRITORIES = {
`}
description={`Navigate to the explore the tool page. Under the map, you will see territories paragraph 1`}
values={{
link1: linkFn('/methodology', true, false),
link1: linkFn(PAGES_ENDPOINTS.METHODOLOGY, true, false),
}}
/>,
PARA_2: <FormattedMessage
@ -849,7 +857,7 @@ export const NOTE_ON_TRIBAL_NATIONS = {
`}
description={`Navigate to the explore the tool page. Under the map, you will see tribal nations paragraph 1`}
values={{
link1: linkFn('/methodology', true, false),
link1: linkFn(PAGES_ENDPOINTS.METHODOLOGY, true, false),
link2: linkFn(`https://www.whitehouse.gov/wp-content/uploads/2022/01/CEQ-Tribal-Consultation-Plan-04.26.2021.pdf`, false, true),
link3: linkFn(`https://www.whitehouse.gov/briefing-room/presidential-actions/2021/01/26/memorandum-on-tribal-consultation-and-strengthening-nation-to-nation-relationships/`, false, true),
link4: linkFn(`https://www.federalregister.gov/documents/2000/11/09/00-29003/consultation-and-coordination-with-indian-tribal-governments`, false, true),
@ -870,7 +878,7 @@ export const HOW_YOU_CAN_HELP_LIST_ITEMS = {
`}
defaultMessage={`View the <link1>Methodology & data</link1> page and send feedback.`}
values={{
link1: linkFn('/methodology', true, false),
link1: linkFn(PAGES_ENDPOINTS.METHODOLOGY, true, false),
}}
/>,
LIST_ITEM_2: <FormattedMessage

View file

@ -0,0 +1,16 @@
/* eslint-disable max-len */
import {defineMessages} from 'react-intl';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
id: 'faqs.page.title.text',
defaultMessage: 'Frequently asked questions',
description: 'Navigate to the the FAQs page, this will be the page title text',
},
COMING_SOON: {
id: 'faqs.page.coming.soon.text',
defaultMessage: 'Coming Soon!',
description: 'Navigate to the the FAQs page, this will be the page coming soon text',
},
});

View file

@ -73,7 +73,8 @@ export const FORMULA = {
// Download Package
export const DOWNLOAD_FILE_SIZE = 52;
export const DOWNLOAD_LAST_UPDATED = 1645180697000;
export const DOWNLOAD_SHAPE_FILE_SIZE = 742;
export const DOWNLOAD_LAST_UPDATED = 1649287951000;
export const VERSION_NUMBER = 0.1;
export const DOWNLOAD_ZIP_URL = [
@ -82,30 +83,35 @@ export const DOWNLOAD_ZIP_URL = [
process.env.GATSBY_SCORE_DOWNLOAD_FILE_PATH,
].join('/');
export const DOWNLOAD_SHAPEFILE_URL = [
process.env.GATSBY_CDN_TILES_BASE_URL,
process.env.GATSBY_DATA_PIPELINE_SCORE_PATH,
process.env.GATSBY_SHAPE_FILE_PATH,
].join('/');
export const DOWNLOAD_PACKAGE = {
TITLE: <FormattedMessage
id={'methodology.page.downloadPacket.header.text'}
defaultMessage={`Draft communities list v{version} ({downloadFileSize} unzipped)`}
defaultMessage={`Files available for download`}
description={'Navigate to the methodology page. This is the download packet header text'}
/>,
DESCRIPTION1: <FormattedMessage
id={ 'methodology.page.downloadPacket.info.text1'}
defaultMessage= {`Download the data sources used in the CEJST (.csv and .xlsx, {downloadFileSize} unzipped) or the shapefile, along with a codebook (.zip, {shapefileSize} unzipped).`}
description= {'Navigate to the methodology page. This is the download packet info text'}
values= {{
version: <FormattedNumber value={VERSION_NUMBER}/>,
downloadFileSize: <FormattedNumber
value={DOWNLOAD_FILE_SIZE}
style="unit"
unit="megabyte"
unitDisplay="narrow"
/>,
}}
/>,
DESCRIPTION: <FormattedMessage
id={ 'methodology.page.downloadPacket.info.text'}
defaultMessage= {`
The download package includes draft v{version} of the list of disadvantaged communities
(.csv and .xlsx).
`}
description= {'Navigate to the methodology page. This is the download packet info text'}
values= {{
version: <FormattedNumber value={VERSION_NUMBER}/>,
shapefileSize: <FormattedNumber
value={DOWNLOAD_SHAPE_FILE_SIZE}
style="unit"
unit="megabyte"
unitDisplay="narrow"
/>,
}}
/>,
LAST_UPDATED: <FormattedMessage
@ -121,11 +127,24 @@ export const DOWNLOAD_PACKAGE = {
/>,
}}
/>,
BUTTON_TEXT: <FormattedMessage
id={ 'methodology.page.downloadPacket.button.text'}
defaultMessage= {'Download package'}
BUTTON_TEXT1: <FormattedMessage
id={ 'methodology.page.downloadPacket.button1.text'}
defaultMessage= {'Download data sources'}
description= {'Navigate to the methodology page. This is the download packet button text'}
/>,
BUTTON_TEXT2: <FormattedMessage
id={ 'methodology.page.downloadPacket.button2.text'}
defaultMessage= {'Download shapefile'}
description= {'Navigate to the methodology page. This is the download shapefiles text'}
/>,
NEW_TAG: <FormattedMessage
id={ 'methodology.page.downloadPacket.new.tag.text'}
defaultMessage= {`<boldtag>NEW</boldtag>`}
description= {'Navigate to the methodology page. This is the new tag text'}
values={{
boldtag: boldFn,
}}
/>,
};
export const CATEGORY= {

View file

@ -90,7 +90,7 @@ export const PUBLIC_ENG_VIDEO = defineMessages({
export const PUBLIC_ENG_BUTTON = defineMessages({
LABEL: {
id: 'public.eng.page.button.label',
defaultMessage: `Public Engagement`,
defaultMessage: `Public engagement`,
description: 'Navigate to the the public engagement page, this will be the public engagement button label',
},
TAG_LABEL: {
@ -98,6 +98,11 @@ export const PUBLIC_ENG_BUTTON = defineMessages({
defaultMessage: `UPDATED`,
description: 'Navigate to the the public engagement page, this will be the public engagement tag label',
},
IMG_ICON_ALT_TAG: {
id: 'public.eng.page.button.img.alt.tag',
defaultMessage: `an icon that represents a calendar`,
description: 'Navigate to the the public engagement page, this will be the public engagement button icon alt tag text',
},
});
export const EVENT_TYPES = {

View file

@ -0,0 +1,16 @@
/* eslint-disable max-len */
import {defineMessages} from 'react-intl';
export const PAGE_INTRO = defineMessages({
PAGE_TILE: {
id: 'technical.support.doc.page.title.text',
defaultMessage: 'Technical Support Document',
description: 'Navigate to the the Technical Support Doc page, this will be the page title text',
},
COMING_SOON: {
id: 'technical.support.doc.page.coming.soon.text',
defaultMessage: 'Coming Soon!',
description: 'Navigate to the the Technical Support Doc page, this will be the page coming soon text',
},
});

View file

@ -79,6 +79,14 @@
"defaultMessage": "Read more about the Justice40 Initiative in President Bidens <link1>Executive Order 14008</link1> on <italictag>Tackling the Climate Crisis at Home and Abroad</italictag>.",
"description": "about page sub header text"
},
"about.page.sub.header.3.text": {
"defaultMessage": "Still have questions?",
"description": "Navigate to the About page. This is the fourth heading"
},
"about.page.sub.header.3.text.1": {
"defaultMessage": "Find answers on the Climate and Economic Justice Screening Tool's <link1>Frequently Asked Questions</link1>.",
"description": "Navigate to the About page. This is the second heading description"
},
"about.page.title.text": {
"defaultMessage": "About",
"description": "Navigate to the About page. This is the about page title text"
@ -111,18 +119,30 @@
"defaultMessage": "Contact",
"description": "Navigate to the about page. This is Footer column header"
},
"common.pages.footer.contribute.header": {
"defaultMessage": "Want to contribute?",
"description": "Navigate to the about page. This is third Footer column header"
},
"common.pages.footer.eng.cal.text": {
"defaultMessage": "Engagement calender",
"description": "Navigate to the about page. This is Footer eng.cal.gov link text"
},
"common.pages.footer.findcontact": {
"defaultMessage": "Find a contact at USA.gov",
"description": "Navigate to the about page. This is Footer find contact link text"
},
"common.pages.footer.findcontact.link": {
"defaultMessage": "https://www.usa.gov/",
"defaultMessage": "https://github.com/usds/justice40-tool",
"description": "Navigate to the about page. This is Footer find contact link text"
},
"common.pages.footer.foia.text": {
"defaultMessage": "Freedom of Information Act (FOIA)",
"description": "Navigate to the about page. This is Footer FOIA link text"
},
"common.pages.footer.github.link.text": {
"defaultMessage": "Check out the code on GitHub",
"description": "Navigate to the about page. This is Footer github link text"
},
"common.pages.footer.logo.title": {
"defaultMessage": "Council on Environmental Quality",
"description": "Navigate to the about page. This is Footer under logo"
@ -139,9 +159,12 @@
"defaultMessage": "Privacy Policy",
"description": "Navigate to the about page. This is Footer privacy policy link text"
},
"common.pages.footer.questionsheader": {
"defaultMessage": "Have a question about government services?",
"description": "Navigate to the about page. This is Footer column header"
"common.pages.footer.rfi.link": {
"description": "Navigate to the about page. This is Footer rfi link"
},
"common.pages.footer.rfi.text": {
"defaultMessage": "Request for Infomation",
"description": "Navigate to the about page. This is Footer rfi link text"
},
"common.pages.footer.whitehouse.link": {
"defaultMessage": "https://www.whitehouse.gov/",
@ -163,14 +186,26 @@
"defaultMessage": "Contact",
"description": "Navigate to the about page. This is Header navigate item to the Contact page"
},
"common.pages.header.downloads": {
"defaultMessage": "Downloads",
"description": "Navigate to the about page. This is Header navigate item to the downloads page"
},
"common.pages.header.explore": {
"defaultMessage": "Explore the tool",
"description": "Navigate to the about page. This is Header navigate item to the Explore the tool page"
},
"common.pages.header.faqs": {
"defaultMessage": "Frequently asked questions",
"description": "Navigate to the about page. This is Header navigate item to the faqs page"
},
"common.pages.header.methodology": {
"defaultMessage": "Methodology & data",
"description": "Navigate to the about page. This is Header navigate item to the Methodology page"
},
"common.pages.header.public.eng": {
"defaultMessage": "Engagement calendar",
"description": "Navigate to the about page. This is Header navigate item to the public eng page"
},
"common.pages.header.title.line1": {
"defaultMessage": "Climate and Economic Justice",
"description": "Navigate to the about page. This is Title in nav header line 1 of 2"
@ -179,6 +214,10 @@
"defaultMessage": "Screening Tool",
"description": "Navigate to the about page. This is Title in nav header line 2 of 2"
},
"common.pages.header.tsd": {
"defaultMessage": "Technical Support Document",
"description": "Navigate to the about page. This is Header navigate item to the technical support document page"
},
"contact.page.census.tract.feedback.para1": {
"defaultMessage": "To provide feedback about a specific census tract, either select the send feedback button after selecting a census tract on the <link1>Explore the tool</link1> page or use the email address provided above. Please include the census tract ID, county, and state or territory information, in addition to your feedback.",
"description": "Navigate to the contact page, this is the census tract feedback section"
@ -219,6 +258,30 @@
"defaultMessage": "Contact",
"description": "Navigate to the contact page, this is the contact page title text"
},
"downloads.page.csv.link": {
"defaultMessage": "<link1>CSV file </link1> (.csv {csvFileSize} unzipped)",
"description": "On the downloads page, the description of the csv link"
},
"downloads.page.excel.link": {
"defaultMessage": "<link1>Excel file</link1> (.xlxs {excelFileSize} unzipped)",
"description": "On the downloads page, the description of the excel link"
},
"downloads.page.heading1.text": {
"defaultMessage": "The dataset used in the tool, along with a data dictionary and information about how to use the list of communities (.pdf) are available in the following file formats:",
"description": "Navigate to the the Downloads page, this will be the page heading1 text"
},
"downloads.page.heading2.text": {
"defaultMessage": "File formats",
"description": "Navigate to the the Downloads page, this will be the page heading2 text"
},
"downloads.page.shape.link": {
"defaultMessage": "<link1>Shapefiles </link1> (Codebook included with geojson {shapeFileSize} unzipped)",
"description": "On the downloads page, the description of the shapefiles link"
},
"downloads.page.title.text": {
"defaultMessage": "Downloads",
"description": "Navigate to the the Downloads page, this will be the page title text"
},
"explore.page.side.panel.at.or.above.at.least.one": {
"defaultMessage": "At or above at least one threshold?",
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. Click on a category to expand. This is the first question text around thresholds."
@ -683,6 +746,10 @@
"defaultMessage": "At or above {numberOfThresholdExceed} thresholds",
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show how many thresholds are exceeded"
},
"explore.tool.page.side.panel.send.feedback.alt.img": {
"defaultMessage": "Send feedback",
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show a send feedback icon, this is the images alt tag"
},
"explore.tool.page.side.panel.send.feedback.email.body": {
"defaultMessage": "Please provide feedback about this census tract, including about the datasets, the data categories provided for this census tract, the communities who live in this census tract, and anything else relevant that CEQ should know about this census tract.",
"description": "Navigate to the explore the tool page. When the map is in view, click on the map. The side panel will show link to send feedback\n"
@ -751,6 +818,14 @@
"defaultMessage": "Help improve the site & data",
"description": "Navigate to the the public engagement page, this will be the text for floating action button"
},
"faqs.page.coming.soon.text": {
"defaultMessage": "Coming Soon!",
"description": "Navigate to the the FAQs page, this will be the page coming soon text"
},
"faqs.page.title.text": {
"defaultMessage": "Frequently asked questions",
"description": "Navigate to the the FAQs page, this will be the page title text"
},
"indicator.categories.afford.house.title": {
"defaultMessage": "Affordable and sustainable housing",
"description": "Navigate to the methodology page. Navigate to the category section. This will set the category title"
@ -1107,22 +1182,30 @@
"defaultMessage": "All categories",
"description": "Navigate to the methodology page. Navigate to the dataset section. This is the portion of the dataset card Used In text for all methodologies"
},
"methodology.page.downloadPacket.button.text": {
"defaultMessage": "Download package",
"methodology.page.downloadPacket.button1.text": {
"defaultMessage": "Download data sources",
"description": "Navigate to the methodology page. This is the download packet button text"
},
"methodology.page.downloadPacket.button2.text": {
"defaultMessage": "Download shapefile",
"description": "Navigate to the methodology page. This is the download shapefiles text"
},
"methodology.page.downloadPacket.header.text": {
"defaultMessage": "Draft communities list v{version} ({downloadFileSize} unzipped)",
"defaultMessage": "Files available for download",
"description": "Navigate to the methodology page. This is the download packet header text"
},
"methodology.page.downloadPacket.info.last.updated": {
"defaultMessage": "Last updated: {downloadLastUpdated}",
"description": "Navigate to the methodology page. This is the download packet info last updated"
},
"methodology.page.downloadPacket.info.text": {
"defaultMessage": "The download package includes draft v{version} of the list of disadvantaged communities (.csv and .xlsx).",
"methodology.page.downloadPacket.info.text1": {
"defaultMessage": "Download the data sources used in the CEJST (.csv and .xlsx, {downloadFileSize} unzipped) or the shapefile, along with a codebook (.zip, {shapefileSize} unzipped).",
"description": "Navigate to the methodology page. This is the download packet info text"
},
"methodology.page.downloadPacket.new.tag.text": {
"defaultMessage": "<boldtag>NEW</boldtag>",
"description": "Navigate to the methodology page. This is the new tag text"
},
"methodology.page.formula.first": {
"defaultMessage": "<boldtag>IF</boldtag> the census tract is above the threshold for one or more environmental or climate indicators",
"description": "Navigate to the methodology page. This is the first part of the formula used in the methodology"
@ -1228,8 +1311,8 @@
"description": "page not found guidance text"
},
"pageNotFound.apology.text": {
"defaultMessage": "Sorry, the page you were looking for was not found. Click {home} to go home.",
"description": "page description"
"defaultMessage": "Sorry, the page you were looking for was not found. Click <link1>home</link1> to go home.",
"description": "main error message"
},
"pageNotFound.heading.text": {
"defaultMessage": "Page not found",
@ -1239,8 +1322,12 @@
"defaultMessage": "Page not found",
"description": "page not found title text"
},
"public.eng.page.button.img.alt.tag": {
"defaultMessage": "an icon that represents a calendar",
"description": "Navigate to the the public engagement page, this will be the public engagement button icon alt tag text"
},
"public.eng.page.button.label": {
"defaultMessage": "Public Engagement",
"defaultMessage": "Public engagement",
"description": "Navigate to the the public engagement page, this will be the public engagement button label"
},
"public.eng.page.description1.text": {
@ -1350,5 +1437,13 @@
"public.eng.page.whejac.meeting.day.1.info": {
"defaultMessage": "March 31th (3:00 - 7:30 PM EST)",
"description": "public engagement page event WHEJAC"
},
"technical.support.doc.page.coming.soon.text": {
"defaultMessage": "Coming Soon!",
"description": "Navigate to the the Technical Support Doc page, this will be the page coming soon text"
},
"technical.support.doc.page.title.text": {
"defaultMessage": "Technical Support Document",
"description": "Navigate to the the Technical Support Doc page, this will be the page title text"
}
}

166
client/src/pages/about.tsx Normal file
View file

@ -0,0 +1,166 @@
import * as React from 'react';
import {useIntl} from 'gatsby-plugin-intl';
import AboutCard from '../components/AboutCard/AboutCard';
import AboutCardsContainer from '../components/AboutCard/AboutCardsContainer';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import PublicEngageButton from '../components/PublicEngageButton';
import * as ABOUT_COPY from '../data/copy/about';
import * as COMMON_COPY from '../data/copy/common';
import {PAGES_ENDPOINTS} from '../data/constants';
// @ts-ignore
import aboutUSMapImg from '../images/about-usmap-1.svg';
// @ts-ignore
import aboutJ40Img from '../images/about-j40-1.svg';
import accountBalanceIcon // @ts-ignore
from '/node_modules/uswds/dist/img/usa-icons/account_balance.svg';
import groupsIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/groups.svg';
import commentIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/comment.svg';
import githubIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/github.svg';
interface IAboutPageProps {
location: Location;
}
// markup
const AboutPage = ({location}: IAboutPageProps) => {
const intl = useIntl();
return (
<Layout location={location} title={intl.formatMessage(ABOUT_COPY.PAGE.TILE)}>
<J40MainGridContainer>
<section className={'page-heading'}>
<h1 data-cy={'about-page-heading'}>{intl.formatMessage(ABOUT_COPY.PAGE.HEADING)}</h1>
<PublicEngageButton />
</section>
{/* Section 1 */}
<AboutCardsContainer>
<AboutCard
size={'large'}
imgSrc={aboutUSMapImg}
header={intl.formatMessage(ABOUT_COPY.PAGE.HEADING_1)}>
<>
<p>
{ABOUT_COPY.HEADING_1.DESCRIPTION_1}
</p>
<p>
{intl.formatMessage(ABOUT_COPY.PAGE.HEADING1_DESCRIPTION2)}
</p>
</>
</AboutCard>
</AboutCardsContainer>
{/* Section 2 */}
<AboutCardsContainer>
<AboutCard
size={'large'}
imgSrc={aboutJ40Img}
header={intl.formatMessage(ABOUT_COPY.PAGE.HEADING_2)}>
<>
<p>
{intl.formatMessage(ABOUT_COPY.PAGE.HEADING2_DESCRIPTION1)}
</p>
<p>
{ABOUT_COPY.HEADING_2.DESCRIPTION_2}
</p>
</>
</AboutCard>
</AboutCardsContainer>
{/* Section 3 */}
<AboutCardsContainer>
<AboutCard
size={'large'}
header={intl.formatMessage(ABOUT_COPY.PAGE.HEADING_3)}>
<>
<p>
{ABOUT_COPY.HEADING_3.DESCRIPTION_1}
</p>
</>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
<J40MainGridContainer
fullWidth={true}
blueBackground={true}>
<J40MainGridContainer>
<h2>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.TITLE)}
</h2>
<AboutCardsContainer>
<AboutCard
size={'small'}
imgSrc={accountBalanceIcon}
header={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_LINK_TEXT)}
url={PAGES_ENDPOINTS.METHODOLOGY}
internal={true}>
<p>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_INFO)}
</p>
</AboutCard>
<AboutCard
size={'small'}
imgSrc={groupsIcon}
header={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_LINK_TEXT)}
url={PAGES_ENDPOINTS.EXPLORE}
internal={true}>
<p>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_INFO)}
</p>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
</J40MainGridContainer>
<J40MainGridContainer>
<h2>{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.TITLE)}</h2>
<AboutCardsContainer>
<AboutCard
size={'small'}
imgSrc={commentIcon}
header={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.SEND_FEEDBACK_HEADING)}
linkText={`Email: ${COMMON_COPY.FEEDBACK_EMAIL}`}
url={`mailto:${COMMON_COPY.FEEDBACK_EMAIL}`}
openUrlNewTab={true}
internal={false}>
<p>
{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.SEND_FEEDBACK_INFO)}
</p>
</AboutCard>
<AboutCard
size={'small'}
imgSrc={githubIcon}
header={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_LINK_TEXT)}
url={ABOUT_COPY.GITHUB_LINK}
openUrlNewTab={true}
internal={false}>
<p>
{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_INFO)}
</p>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
</Layout>);
};
export default AboutPage;

View file

@ -1,77 +0,0 @@
import React from 'react';
import {useIntl} from 'gatsby-plugin-intl';
import {Grid} from '@trussworks/react-uswds';
import HowYouCanHelp from '../components/HowYouCanHelp';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import MapWrapper from '../components/MapWrapper';
import PublicEngageButton from '../components/PublicEngageButton';
import * as EXPLORE_COPY from '../data/copy/explore';
interface IMapPageProps {
location: Location;
}
const CEJSTPage = ({location}: IMapPageProps) => {
// We temporarily removed MapControls, which would enable you to `setFeatures` also, for now
// We will bring back later when we have interactive controls.
const intl = useIntl();
return (<Layout location={location} title={intl.formatMessage(EXPLORE_COPY.PAGE_INTRO.PAGE_TILE)}>
<J40MainGridContainer>
<section className={'page-heading'}>
<h1>{intl.formatMessage(EXPLORE_COPY.PAGE_INTRO.PAGE_HEADING)}</h1>
<PublicEngageButton />
</section>
<Grid row gap className={'j40-mb5-mt3'}>
{/* Gradually increase width of the Grid as the width decreases from desktop to mobile*/}
{/* desktop = 7 columns, tablet = 10 columns and mobile = 12 columns (full width) */}
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<section>
<p>
{EXPLORE_COPY.PAGE_DESCRIPTION}
</p>
</section>
</Grid>
</Grid>
</J40MainGridContainer>
<J40MainGridContainer>
<MapWrapper location={location}/>
</J40MainGridContainer>
<J40MainGridContainer>
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<h2>{EXPLORE_COPY.NOTE_ON_TERRITORIES.INTRO}</h2>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_1}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_2}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_3}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_4}</p>
</Grid>
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<h2>{EXPLORE_COPY.NOTE_ON_TRIBAL_NATIONS.INTRO}</h2>
<p>{EXPLORE_COPY.NOTE_ON_TRIBAL_NATIONS.PARA_1}</p>
</Grid>
</J40MainGridContainer>
<J40MainGridContainer>
<Grid row>
<Grid col>
<section>
<HowYouCanHelp/>
</section>
</Grid>
</Grid>
</J40MainGridContainer>
</Layout>);
};
export default CEJSTPage;

View file

@ -5,8 +5,8 @@ import {useIntl, FormattedMessage} from 'gatsby-plugin-intl';
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 PublicEngageButton from '../components/PublicEngageButton';
import * as CONTACT_COPY from '../data/copy/contact';
import * as COMMON_COPY from '../data/copy/common';

View file

@ -0,0 +1,45 @@
import * as React from 'react';
import {Grid} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import * as DOWNLOADS_COPY from '../data/copy/downloads';
interface IDownloadsPageProps {
location: Location;
}
const DownloadsPage = ({location}: IDownloadsPageProps) => {
const intl = useIntl();
return (
<Layout location={location} title={intl.formatMessage(DOWNLOADS_COPY.PAGE_INTRO.PAGE_TILE)}>
<J40MainGridContainer>
<h1>{intl.formatMessage(DOWNLOADS_COPY.PAGE_INTRO.PAGE_HEADING1)}</h1>
<Grid desktop={{col: 8}}>
<h2>{intl.formatMessage(DOWNLOADS_COPY.PAGE_INTRO.PAGE_HEADING2)}</h2>
<p>
{intl.formatMessage(DOWNLOADS_COPY.PAGE_INTRO.PAGE_DESCRIPTION1)}
</p>
<p>
{DOWNLOADS_COPY.DOWNLOAD_LINKS.EXCEL}
</p>
<p>
{DOWNLOADS_COPY.DOWNLOAD_LINKS.CSV}
</p>
<p>
{DOWNLOADS_COPY.DOWNLOAD_LINKS.SHAPE}
</p>
</Grid>
</J40MainGridContainer>
</Layout>
);
};
export default DownloadsPage;

View file

@ -0,0 +1,32 @@
import * as React from 'react';
import {Grid} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import * as FAQS_COPY from '../data/copy/faqs';
interface IFAQPageProps {
location: Location;
}
const FAQPage = ({location}: IFAQPageProps) => {
const intl = useIntl();
return (
<Layout location={location} title={intl.formatMessage(FAQS_COPY.PAGE_INTRO.PAGE_TILE)}>
<J40MainGridContainer>
<h1>{intl.formatMessage(FAQS_COPY.PAGE_INTRO.PAGE_TILE)}</h1>
<Grid row>
{intl.formatMessage(FAQS_COPY.PAGE_INTRO.COMING_SOON)}
</Grid>
</J40MainGridContainer>
</Layout>
);
};
export default FAQPage;

View file

@ -1,147 +1,77 @@
import * as React from 'react';
import React from 'react';
import {useIntl} from 'gatsby-plugin-intl';
import {Grid} from '@trussworks/react-uswds';
import AboutCard from '../components/AboutCard/AboutCard';
import AboutCardsContainer from '../components/AboutCard/AboutCardsContainer';
import HowYouCanHelp from '../components/HowYouCanHelp';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import MapWrapper from '../components/MapWrapper';
import PublicEngageButton from '../components/PublicEngageButton';
import * as ABOUT_COPY from '../data/copy/about';
import * as COMMON_COPY from '../data/copy/common';
import * as EXPLORE_COPY from '../data/copy/explore';
// @ts-ignore
import aboutUSMapImg from '../images/about-usmap-1.svg';
// @ts-ignore
import aboutJ40Img from '../images/about-j40-1.svg';
import accountBalanceIcon // @ts-ignore
from '/node_modules/uswds/dist/img/usa-icons/account_balance.svg';
import groupsIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/groups.svg';
import commentIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/comment.svg';
import githubIcon from // @ts-ignore
'/node_modules/uswds/dist/img/usa-icons/github.svg';
interface IndexPageProps {
interface IMapPageProps {
location: Location;
}
// markup
const IndexPage = ({location}: IndexPageProps) => {
const ExporeToolPage = ({location}: IMapPageProps) => {
// We temporarily removed MapControls, which would enable you to `setFeatures` also, for now
// We will bring back later when we have interactive controls.
const intl = useIntl();
return (
<Layout location={location} title={intl.formatMessage(ABOUT_COPY.PAGE.TILE)}>
<J40MainGridContainer>
<section className={'page-heading'}>
<h1 data-cy={'about-page-heading'}>{intl.formatMessage(ABOUT_COPY.PAGE.HEADING)}</h1>
<PublicEngageButton />
</section>
return (<Layout location={location} title={intl.formatMessage(EXPLORE_COPY.PAGE_INTRO.PAGE_TILE)}>
<AboutCardsContainer>
<AboutCard
size={'large'}
imgSrc={aboutUSMapImg}
header={intl.formatMessage(ABOUT_COPY.PAGE.HEADING_1)}>
<>
<p>
{ABOUT_COPY.HEADING_1.DESCRIPTION_1}
</p>
<p>
{intl.formatMessage(ABOUT_COPY.PAGE.HEADING1_DESCRIPTION2)}
</p>
</>
</AboutCard>
</AboutCardsContainer>
<J40MainGridContainer>
<AboutCardsContainer>
<AboutCard
size={'large'}
imgSrc={aboutJ40Img}
header={intl.formatMessage(ABOUT_COPY.PAGE.HEADING_2)}>
<>
<p>
{intl.formatMessage(ABOUT_COPY.PAGE.HEADING2_DESCRIPTION1)}
</p>
<p>
{ABOUT_COPY.HEADING_2.DESCRIPTION_2}
</p>
</>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
<section className={'page-heading'}>
<h1>{intl.formatMessage(EXPLORE_COPY.PAGE_INTRO.PAGE_HEADING)}</h1>
<PublicEngageButton />
</section>
<J40MainGridContainer
fullWidth={true}
blueBackground={true}>
<J40MainGridContainer>
<h2>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.TITLE)}
</h2>
<AboutCardsContainer>
<AboutCard
size={'small'}
imgSrc={accountBalanceIcon}
header={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_LINK_TEXT)}
url={'/methodology'}
internal={true}>
<p>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.FEDERAL_PM_INFO)}
</p>
</AboutCard>
<Grid row gap className={'j40-mb5-mt3'}>
<AboutCard
size={'small'}
imgSrc={groupsIcon}
header={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_LINK_TEXT)}
url={'/cejst'}
internal={true}>
<p>
{intl.formatMessage(ABOUT_COPY.HOW_TO_GET_STARTED.COMMUNITY_MEMBERS_INFO)}
</p>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
</J40MainGridContainer>
<J40MainGridContainer>
<h2>{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.TITLE)}</h2>
<AboutCardsContainer>
<AboutCard
size={'small'}
imgSrc={commentIcon}
header={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.SEND_FEEDBACK_HEADING)}
linkText={`Email: ${COMMON_COPY.FEEDBACK_EMAIL}`}
url={`mailto:${COMMON_COPY.FEEDBACK_EMAIL}`}
openUrlNewTab={true}
internal={false}>
{/* Gradually increase width of the Grid as the width decreases from desktop to mobile*/}
{/* desktop = 7 columns, tablet = 10 columns and mobile = 12 columns (full width) */}
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<section>
<p>
{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.SEND_FEEDBACK_INFO)}
{EXPLORE_COPY.PAGE_DESCRIPTION}
</p>
</AboutCard>
</section>
</Grid>
</Grid>
</J40MainGridContainer>
<AboutCard
size={'small'}
imgSrc={githubIcon}
header={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_HEADING)}
linkText={intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_LINK_TEXT)}
url={ABOUT_COPY.GITHUB_LINK}
openUrlNewTab={true}
internal={false}>
<p>
{intl.formatMessage(ABOUT_COPY.GET_INVOLVED.JOIN_OSC_INFO)}
</p>
</AboutCard>
</AboutCardsContainer>
</J40MainGridContainer>
</Layout>);
<J40MainGridContainer>
<MapWrapper location={location}/>
</J40MainGridContainer>
<J40MainGridContainer>
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<h2>{EXPLORE_COPY.NOTE_ON_TERRITORIES.INTRO}</h2>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_1}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_2}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_3}</p>
<p>{EXPLORE_COPY.NOTE_ON_TERRITORIES.PARA_4}</p>
</Grid>
<Grid desktop={{col: 7}} tablet={{col: 10}} col={12}>
<h2>{EXPLORE_COPY.NOTE_ON_TRIBAL_NATIONS.INTRO}</h2>
<p>{EXPLORE_COPY.NOTE_ON_TRIBAL_NATIONS.PARA_1}</p>
</Grid>
</J40MainGridContainer>
<J40MainGridContainer>
<Grid row>
<Grid col>
<section>
<HowYouCanHelp/>
</section>
</Grid>
</Grid>
</J40MainGridContainer>
</Layout>);
};
export default IndexPage;
export default ExporeToolPage;

View file

@ -0,0 +1,32 @@
import * as React from 'react';
import {Grid} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import J40MainGridContainer from '../components/J40MainGridContainer';
import Layout from '../components/layout';
import * as TSD_COPY from '../data/copy/tsd';
interface ITSDPageProps {
location: Location;
}
const TSDPage = ({location}: ITSDPageProps) => {
const intl = useIntl();
return (
<Layout location={location} title={intl.formatMessage(TSD_COPY.PAGE_INTRO.PAGE_TILE)}>
<J40MainGridContainer>
<h1>{intl.formatMessage(TSD_COPY.PAGE_INTRO.PAGE_TILE)}</h1>
<Grid row>
{intl.formatMessage(TSD_COPY.PAGE_INTRO.COMING_SOON)}
</Grid>
</J40MainGridContainer>
</Layout>
);
};
export default TSDPage;

View file

@ -218,22 +218,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/cejst"
href="/en/"
>
Explore the tool
</a>
@ -248,6 +238,16 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
@ -331,11 +331,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
href="/en/public-engagement"
>
<button
class="usa-button usa-button--icon"
class="usa-button"
data-testid="button"
type="button"
>
Public Engagement
<div>
<img
alt="an icon that represents a calendar"
src="test-file-stub"
/>
<div>
Public engagement
</div>
</div>
</button>
</a>
</div>
@ -475,6 +483,53 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
</div>
</div>
</div>
<div
class="grid-row grid-gap-lg j40-aboutcard-container "
data-testid="grid"
>
<div
class="grid-gap-lg tablet:grid-col"
data-testid="grid"
>
<div
class="grid-row j40-aboutcard-lg-card"
data-testid="grid"
>
<div
class="tablet:grid-col-3 j40-aboutpage-image-container"
data-testid="grid"
/>
<div
class="tablet:grid-col-9"
data-cy="still-have-questions?-block"
data-testid="grid"
>
<div
class="grid-row"
data-testid="grid"
>
<h2>
Still have questions?
</h2>
<p>
Find answers on the Climate and Economic Justice Screening Tool's
<a
class="usa-link usa-link--external"
data-cy=""
href="https://www.whitehouse.gov/wp-content/uploads/2022/02/CEQ-CEJST-QandA.pdf"
rel="noreferrer"
target="_blank"
>
Frequently Asked Questions
</a>
.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class="j40-main-grid-blue-bk "
@ -530,6 +585,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
class="j40-aboutcard-sm-link"
>
<a
class="j40-aboutcard-link"
href="/en/methodology"
>
Methodology & data
@ -584,7 +640,8 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
class="j40-aboutcard-sm-link"
>
<a
href="/en/cejst"
class="j40-aboutcard-link"
href="/en/"
>
Explore the tool
</a>
@ -809,7 +866,30 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
@ -844,6 +924,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
@ -854,7 +947,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<div
class="j40-h4"
>
Have a question about government services?
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
@ -864,12 +957,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
Check out the code on GitHub
</a>
</li>
</ul>

View file

@ -218,22 +218,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/cejst"
href="/en/"
>
Explore the tool
</a>
@ -248,6 +238,16 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
@ -329,11 +329,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
href="/en/public-engagement"
>
<button
class="usa-button usa-button--icon"
class="usa-button"
data-testid="button"
type="button"
>
Public Engagement
<div>
<img
alt="an icon that represents a calendar"
src="test-file-stub"
/>
<div>
Public engagement
</div>
</div>
</button>
</a>
</div>
@ -370,7 +378,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
To provide feedback about a specific census tract, either select the send feedback button after
selecting a census tract on the
<a
href="/en/cejst"
href="/en/"
>
Explore the tool
</a>
@ -513,7 +521,30 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
@ -548,6 +579,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
@ -558,7 +602,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<div
class="j40-h4"
>
Have a question about government services?
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
@ -568,12 +612,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
Check out the code on GitHub
</a>
</li>
</ul>

View file

@ -0,0 +1,594 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the DatasetContainer checks if various text fields are visible 1`] = `
<DocumentFragment>
<header
class="usa-header usa-header--basic"
data-testid="header"
role="banner"
>
<div>
<div>
<section
class="usa-banner"
data-testid="govBanner"
>
<div
class="usa-accordion"
>
<header
class="usa-banner__header"
>
<div
class="usa-banner__inner"
>
<div
class="grid-col-auto"
>
<img
alt="U.S. flag"
class="usa-banner__header-flag"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAG1BMVEUdM7EeNLIeM7HgQCDaPh/bPh/bPx/////bPyBEby41AAAAUElEQVQI123MNw4CABDEwD3jC/9/MQ1BQrgeOSkIqYe2o2FZtthXgQLgbHVMZdlsfUQFQnHtjP1+8BUhBDKOqtmfot6ojqPzR7TjdU+f6vkED+IDPhTBcMAAAAAASUVORK5CYII="
/>
</div>
<div
class="grid-col-fill tablet:grid-col-auto"
>
<p
class="usa-banner__header-text"
>
An official website of the United States government
</p>
<p
aria-hidden="true"
class="usa-banner__header-action"
>
Heres how you know
</p>
</div>
<button
aria-controls="gov-banner"
aria-expanded="false"
class="usa-accordion__button usa-banner__button"
type="button"
>
<span
class="usa-banner__button-text"
>
Heres how you know
</span>
</button>
</div>
</header>
<div
class="usa-banner__content usa-accordion__content"
hidden=""
id="gov-banner"
>
<div
class="grid-row grid-gap-lg"
>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWRvdC1nb3Y8L3RpdGxlPjxwYXRoIGZpbGw9IiMyMzc4QzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDBjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMyIDAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkMxNC4zMjcgNjQgMCA0OS42NzMgMCAzMiAwIDE0LjMyNyAxNC4zMjcgMCAzMiAwem0wIDEuMjA4QzE0Ljk5NCAxLjIwOCAxLjIwOCAxNC45OTQgMS4yMDggMzJTMTQuOTk0IDYyLjc5MiAzMiA2Mi43OTIgNjIuNzkyIDQ5LjAwNiA2Mi43OTIgMzIgNDkuMDA2IDEuMjA4IDMyIDEuMjA4em0xMC41OSAzOC44NThhLjg1Ny44NTcgMCAwIDEgLjg4Mi44MjJ2MS42NDJIMTguODg2di0xLjY0MmEuODU3Ljg1NyAwIDAgMSAuODgyLS44MjJINDIuNTl6TTI1LjQ0MyAyNy43NzR2OS44MjloMS42NDJ2LTkuODNoMy4yNzN2OS44M0gzMnYtOS44M2gzLjI3MnY5LjgzaDEuNjQzdi05LjgzaDMuMjcydjkuODNoLjc2YS44NTcuODU3IDAgMCAxIC44ODIuODIxdi44MjFoLTIxLjN2LS44MDlhLjg1Ny44NTcgMCAwIDEgLjg4LS44MmguNzYydi05Ljg0MmgzLjI3MnptNS43MzYtOC4xODhsMTIuMjkzIDQuOTE1djEuNjQyaC0xLjYzYS44NTcuODU3IDAgMCAxLS44ODIuODIySDIxLjQxYS44NTcuODU3IDAgMCAxLS44ODItLjgyMmgtMS42NDJ2LTEuNjQybDEyLjI5My00LjkxNXoiLz48L3N2Zz4="
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Official websites use .gov
</strong>
<br />
A
<strong>
.gov
</strong>
website belongs to an official government organization in the United States.
</p>
</div>
</div>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWh0dHBzPC90aXRsZT48cGF0aCBmaWxsPSIjNzE5RjJBIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMiAwYzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMiAwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJDMTQuMzI3IDY0IDAgNDkuNjczIDAgMzIgMCAxNC4zMjcgMTQuMzI3IDAgMzIgMHptMCAxLjIwOEMxNC45OTQgMS4yMDggMS4yMDggMTQuOTk0IDEuMjA4IDMyUzE0Ljk5NCA2Mi43OTIgMzIgNjIuNzkyIDYyLjc5MiA0OS4wMDYgNjIuNzkyIDMyIDQ5LjAwNiAxLjIwOCAzMiAxLjIwOHptMCAxOC44ODZhNy4yNDUgNy4yNDUgMCAwIDEgNy4yNDUgNy4yNDV2My4xMDNoLjUyYy44NiAwIDEuNTU3LjY5OCAxLjU1NyAxLjU1OHY5LjMyMmMwIC44Ni0uNjk3IDEuNTU4LTEuNTU3IDEuNTU4aC0xNS41M2MtLjg2IDAtMS41NTctLjY5Ny0xLjU1Ny0xLjU1OFYzMmMwLS44Ni42OTctMS41NTggMS41NTctMS41NThoLjUyVjI3LjM0QTcuMjQ1IDcuMjQ1IDAgMCAxIDMyIDIwLjA5NHptMCAzLjEwM2E0LjE0MiA0LjE0MiAwIDAgMC00LjE0MiA0LjE0MnYzLjEwM2g4LjI4NFYyNy4zNEE0LjE0MiA0LjE0MiAwIDAgMCAzMiAyMy4xOTd6Ii8+PC9zdmc+"
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Secure .gov websites use HTTPS
</strong>
<br />
A
<strong>
lock (
<span
class="icon-lock"
>
<img
alt="lock"
class="usa-banner__lock-image"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUyIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNTIgNjQiPjx0aXRsZT5sb2NrPC90aXRsZT48cGF0aCBmaWxsPSIjMUIxQjFCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNiAwYzEwLjQ5MyAwIDE5IDguNTA3IDE5IDE5djloM2E0IDQgMCAwIDEgNCA0djI4YTQgNCAwIDAgMS00IDRINGE0IDQgMCAwIDEtNC00VjMyYTQgNCAwIDAgMSA0LTRoM3YtOUM3IDguNTA3IDE1LjUwNyAwIDI2IDB6bTAgOGMtNS45NzkgMC0xMC44NDMgNC43Ny0xMC45OTYgMTAuNzEyTDE1IDE5djloMjJ2LTljMC02LjA3NS00LjkyNS0xMS0xMS0xMXoiLz48L3N2Zz4="
title="Lock"
/>
</span>
)
</strong>
or
<strong>
https://
</strong>
means youve safely connected to the .gov website. Share sensitive information only on official, secure websites.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<div>
<div>
<div />
<div>
<span>
This is a beta site.
</span>
<span>
It is an early, in-progress version of the tool with limited datasets that will
be regularly updated.
</span>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row"
data-testid="grid"
>
<div
class="grid-col-1"
data-testid="grid"
>
<img
alt="Climate and Economic Justice Screening Tool"
src="test-file-stub"
/>
</div>
<div
class="grid-col-6"
data-testid="grid"
>
<div>
<div>
Climate and Economic Justice
</div>
<div>
<div>
Screening Tool
</div>
<div>
BETA
</div>
</div>
</div>
</div>
<div
class="grid-col-fill"
data-testid="grid"
>
<button
class="usa-menu-btn"
data-testid="navMenuButton"
type="button"
>
Menu
</button>
<nav
class="usa-nav"
>
<button
class="usa-nav__close"
data-testid="navCloseButton"
type="button"
>
<img
alt="close"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5jbG9zZTwvdGl0bGU+PHBhdGggZmlsbD0iIzU2NUM2NSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTcuMDQyIDEuMTVsNS44MDkgNS44MDhhNCA0IDAgMCAxIDAgNS42NTdMNDMuNDY1IDMybDE5LjM4NiAxOS4zODVhNCA0IDAgMCAxIDAgNS42NTdsLTUuODA5IDUuODA5YTQgNCAwIDAgMS01LjY1NyAwTDMyIDQzLjQ2NSAxMi42MTUgNjIuODUxYTQgNCAwIDAgMS01LjY1NyAwbC01LjgwOS01LjgwOWE0IDQgMCAwIDEgMC01LjY1N0wyMC41MzUgMzIgMS4xNDkgMTIuNjE1YTQgNCAwIDAgMSAwLTUuNjU3bDUuODA5LTUuODA5YTQgNCAwIDAgMSA1LjY1NyAwTDMyIDIwLjUzNSA1MS4zODUgMS4xNDlhNCA0IDAgMCAxIDUuNjU3IDB6Ii8+PC9zdmc+"
/>
</button>
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/"
>
Explore the tool
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-methodology"
href="/en/methodology"
>
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-contact"
href="/en/contact"
>
Contact
</a>
</li>
<li
class="usa-nav__primary-item"
>
<div />
</li>
</ul>
</nav>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-alert usa-alert--info"
data-testid="alert"
>
<div
class="usa-alert__body"
>
<h4
class="usa-alert__heading"
>
Improvements to the map on the Explore the tool page
</h4>
<p
class="usa-alert__text"
>
View improvements made to the display of the information for each census tract and
<a
class="usa-link usa-link--external"
data-cy=""
href="mailto:Screeningtool-Support@omb.eop.gov"
rel="noreferrer"
target="_blank"
>
send feedback
</a>
.
</p>
</div>
</div>
</div>
</header>
<main
id="main-content"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<h1>
Downloads
</h1>
<div
class="desktop:grid-col-8"
data-testid="grid"
>
<h2>
File formats
</h2>
<p>
The dataset used in the tool, along with a data dictionary and information about how to use the list of communities (.pdf) are available in the following file formats:
</p>
<p>
<a
href="/about"
>
Excel file
</a>
(.xlxs 54MB unzipped)
</p>
<p>
<a
href="/csv"
>
CSV file
</a>
(.csv 52MB unzipped)
</p>
<p>
<a
href="/shape"
>
Shapefiles
</a>
(Codebook included with geojson 110MB unzipped)
</p>
</div>
</div>
</main>
<footer
class="j40-footer"
>
<div
class="usa-footer__primary-section pb2"
data-cy="footer-primary-block"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row tablet-lg:grid-col4"
>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Contact
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<address
class="usa-footer__address j40-footer-address"
>
<div
class="usa-footer__contact-info grid-row grid-gap"
>
<div
class="grid-col-auto"
>
Council on Environmental Quality
</div>
<div
class="grid-col-auto"
>
730 Jackson Pl NW
</div>
<div
class="grid-col-auto"
>
Washington, D.C. 20506
</div>
<div
class="grid-col-auto"
>
(202) 395-5750
</div>
</div>
</address>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
More information
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
target="_blank"
>
Whitehouse.gov
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="freedom-of-information-act-(foia)"
href="https://www.whitehouse.gov/ceq/foia"
rel="noreferrer"
target="_blank"
>
Freedom of Information Act (FOIA)
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="privacy-policy"
href="https://www.whitehouse.gov/privacy/"
rel="noreferrer"
target="_blank"
>
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Check out the code on GitHub
</a>
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
<div
class="usa-footer__secondary-section"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-footer__logo grid-row mobile-lg:grid-col-6 mobile-lg:grid-gap-2"
data-testid="footerLogo"
>
<div
class="mobile-lg:grid-col-auto"
>
<img
alt="Whitehouse logo"
class="usa-footer__logo-img"
src="test-file-stub"
/>
</div>
<div
class="mobile-lg:grid-col-auto"
>
<div
class="j40-footer-ceq-font"
>
Council on Environmental Quality
</div>
</div>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
Help improve the site & data
<img
alt="launch icon"
src="test-file-stub"
/>
</button>
</div>
</footer>
</DocumentFragment>
`;

View file

@ -0,0 +1,556 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the DatasetContainer checks if various text fields are visible 1`] = `
<DocumentFragment>
<header
class="usa-header usa-header--basic"
data-testid="header"
role="banner"
>
<div>
<div>
<section
class="usa-banner"
data-testid="govBanner"
>
<div
class="usa-accordion"
>
<header
class="usa-banner__header"
>
<div
class="usa-banner__inner"
>
<div
class="grid-col-auto"
>
<img
alt="U.S. flag"
class="usa-banner__header-flag"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAG1BMVEUdM7EeNLIeM7HgQCDaPh/bPh/bPx/////bPyBEby41AAAAUElEQVQI123MNw4CABDEwD3jC/9/MQ1BQrgeOSkIqYe2o2FZtthXgQLgbHVMZdlsfUQFQnHtjP1+8BUhBDKOqtmfot6ojqPzR7TjdU+f6vkED+IDPhTBcMAAAAAASUVORK5CYII="
/>
</div>
<div
class="grid-col-fill tablet:grid-col-auto"
>
<p
class="usa-banner__header-text"
>
An official website of the United States government
</p>
<p
aria-hidden="true"
class="usa-banner__header-action"
>
Heres how you know
</p>
</div>
<button
aria-controls="gov-banner"
aria-expanded="false"
class="usa-accordion__button usa-banner__button"
type="button"
>
<span
class="usa-banner__button-text"
>
Heres how you know
</span>
</button>
</div>
</header>
<div
class="usa-banner__content usa-accordion__content"
hidden=""
id="gov-banner"
>
<div
class="grid-row grid-gap-lg"
>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWRvdC1nb3Y8L3RpdGxlPjxwYXRoIGZpbGw9IiMyMzc4QzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDBjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMyIDAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkMxNC4zMjcgNjQgMCA0OS42NzMgMCAzMiAwIDE0LjMyNyAxNC4zMjcgMCAzMiAwem0wIDEuMjA4QzE0Ljk5NCAxLjIwOCAxLjIwOCAxNC45OTQgMS4yMDggMzJTMTQuOTk0IDYyLjc5MiAzMiA2Mi43OTIgNjIuNzkyIDQ5LjAwNiA2Mi43OTIgMzIgNDkuMDA2IDEuMjA4IDMyIDEuMjA4em0xMC41OSAzOC44NThhLjg1Ny44NTcgMCAwIDEgLjg4Mi44MjJ2MS42NDJIMTguODg2di0xLjY0MmEuODU3Ljg1NyAwIDAgMSAuODgyLS44MjJINDIuNTl6TTI1LjQ0MyAyNy43NzR2OS44MjloMS42NDJ2LTkuODNoMy4yNzN2OS44M0gzMnYtOS44M2gzLjI3MnY5LjgzaDEuNjQzdi05LjgzaDMuMjcydjkuODNoLjc2YS44NTcuODU3IDAgMCAxIC44ODIuODIxdi44MjFoLTIxLjN2LS44MDlhLjg1Ny44NTcgMCAwIDEgLjg4LS44MmguNzYydi05Ljg0MmgzLjI3MnptNS43MzYtOC4xODhsMTIuMjkzIDQuOTE1djEuNjQyaC0xLjYzYS44NTcuODU3IDAgMCAxLS44ODIuODIySDIxLjQxYS44NTcuODU3IDAgMCAxLS44ODItLjgyMmgtMS42NDJ2LTEuNjQybDEyLjI5My00LjkxNXoiLz48L3N2Zz4="
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Official websites use .gov
</strong>
<br />
A
<strong>
.gov
</strong>
website belongs to an official government organization in the United States.
</p>
</div>
</div>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWh0dHBzPC90aXRsZT48cGF0aCBmaWxsPSIjNzE5RjJBIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMiAwYzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMiAwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJDMTQuMzI3IDY0IDAgNDkuNjczIDAgMzIgMCAxNC4zMjcgMTQuMzI3IDAgMzIgMHptMCAxLjIwOEMxNC45OTQgMS4yMDggMS4yMDggMTQuOTk0IDEuMjA4IDMyUzE0Ljk5NCA2Mi43OTIgMzIgNjIuNzkyIDYyLjc5MiA0OS4wMDYgNjIuNzkyIDMyIDQ5LjAwNiAxLjIwOCAzMiAxLjIwOHptMCAxOC44ODZhNy4yNDUgNy4yNDUgMCAwIDEgNy4yNDUgNy4yNDV2My4xMDNoLjUyYy44NiAwIDEuNTU3LjY5OCAxLjU1NyAxLjU1OHY5LjMyMmMwIC44Ni0uNjk3IDEuNTU4LTEuNTU3IDEuNTU4aC0xNS41M2MtLjg2IDAtMS41NTctLjY5Ny0xLjU1Ny0xLjU1OFYzMmMwLS44Ni42OTctMS41NTggMS41NTctMS41NThoLjUyVjI3LjM0QTcuMjQ1IDcuMjQ1IDAgMCAxIDMyIDIwLjA5NHptMCAzLjEwM2E0LjE0MiA0LjE0MiAwIDAgMC00LjE0MiA0LjE0MnYzLjEwM2g4LjI4NFYyNy4zNEE0LjE0MiA0LjE0MiAwIDAgMCAzMiAyMy4xOTd6Ii8+PC9zdmc+"
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Secure .gov websites use HTTPS
</strong>
<br />
A
<strong>
lock (
<span
class="icon-lock"
>
<img
alt="lock"
class="usa-banner__lock-image"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUyIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNTIgNjQiPjx0aXRsZT5sb2NrPC90aXRsZT48cGF0aCBmaWxsPSIjMUIxQjFCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNiAwYzEwLjQ5MyAwIDE5IDguNTA3IDE5IDE5djloM2E0IDQgMCAwIDEgNCA0djI4YTQgNCAwIDAgMS00IDRINGE0IDQgMCAwIDEtNC00VjMyYTQgNCAwIDAgMSA0LTRoM3YtOUM3IDguNTA3IDE1LjUwNyAwIDI2IDB6bTAgOGMtNS45NzkgMC0xMC44NDMgNC43Ny0xMC45OTYgMTAuNzEyTDE1IDE5djloMjJ2LTljMC02LjA3NS00LjkyNS0xMS0xMS0xMXoiLz48L3N2Zz4="
title="Lock"
/>
</span>
)
</strong>
or
<strong>
https://
</strong>
means youve safely connected to the .gov website. Share sensitive information only on official, secure websites.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<div>
<div>
<div />
<div>
<span>
This is a beta site.
</span>
<span>
It is an early, in-progress version of the tool with limited datasets that will
be regularly updated.
</span>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row"
data-testid="grid"
>
<div
class="grid-col-1"
data-testid="grid"
>
<img
alt="Climate and Economic Justice Screening Tool"
src="test-file-stub"
/>
</div>
<div
class="grid-col-6"
data-testid="grid"
>
<div>
<div>
Climate and Economic Justice
</div>
<div>
<div>
Screening Tool
</div>
<div>
BETA
</div>
</div>
</div>
</div>
<div
class="grid-col-fill"
data-testid="grid"
>
<button
class="usa-menu-btn"
data-testid="navMenuButton"
type="button"
>
Menu
</button>
<nav
class="usa-nav"
>
<button
class="usa-nav__close"
data-testid="navCloseButton"
type="button"
>
<img
alt="close"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5jbG9zZTwvdGl0bGU+PHBhdGggZmlsbD0iIzU2NUM2NSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTcuMDQyIDEuMTVsNS44MDkgNS44MDhhNCA0IDAgMCAxIDAgNS42NTdMNDMuNDY1IDMybDE5LjM4NiAxOS4zODVhNCA0IDAgMCAxIDAgNS42NTdsLTUuODA5IDUuODA5YTQgNCAwIDAgMS01LjY1NyAwTDMyIDQzLjQ2NSAxMi42MTUgNjIuODUxYTQgNCAwIDAgMS01LjY1NyAwbC01LjgwOS01LjgwOWE0IDQgMCAwIDEgMC01LjY1N0wyMC41MzUgMzIgMS4xNDkgMTIuNjE1YTQgNCAwIDAgMSAwLTUuNjU3bDUuODA5LTUuODA5YTQgNCAwIDAgMSA1LjY1NyAwTDMyIDIwLjUzNSA1MS4zODUgMS4xNDlhNCA0IDAgMCAxIDUuNjU3IDB6Ii8+PC9zdmc+"
/>
</button>
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/"
>
Explore the tool
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-methodology"
href="/en/methodology"
>
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-contact"
href="/en/contact"
>
Contact
</a>
</li>
<li
class="usa-nav__primary-item"
>
<div />
</li>
</ul>
</nav>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-alert usa-alert--info"
data-testid="alert"
>
<div
class="usa-alert__body"
>
<h4
class="usa-alert__heading"
>
Improvements to the map on the Explore the tool page
</h4>
<p
class="usa-alert__text"
>
View improvements made to the display of the information for each census tract and
<a
class="usa-link usa-link--external"
data-cy=""
href="mailto:Screeningtool-Support@omb.eop.gov"
rel="noreferrer"
target="_blank"
>
send feedback
</a>
.
</p>
</div>
</div>
</div>
</header>
<main
id="main-content"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<h1>
Frequently asked questions
</h1>
<div
class="grid-row"
data-testid="grid"
>
Coming Soon!
</div>
</div>
</main>
<footer
class="j40-footer"
>
<div
class="usa-footer__primary-section pb2"
data-cy="footer-primary-block"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row tablet-lg:grid-col4"
>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Contact
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<address
class="usa-footer__address j40-footer-address"
>
<div
class="usa-footer__contact-info grid-row grid-gap"
>
<div
class="grid-col-auto"
>
Council on Environmental Quality
</div>
<div
class="grid-col-auto"
>
730 Jackson Pl NW
</div>
<div
class="grid-col-auto"
>
Washington, D.C. 20506
</div>
<div
class="grid-col-auto"
>
(202) 395-5750
</div>
</div>
</address>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
More information
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
target="_blank"
>
Whitehouse.gov
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="freedom-of-information-act-(foia)"
href="https://www.whitehouse.gov/ceq/foia"
rel="noreferrer"
target="_blank"
>
Freedom of Information Act (FOIA)
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="privacy-policy"
href="https://www.whitehouse.gov/privacy/"
rel="noreferrer"
target="_blank"
>
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Check out the code on GitHub
</a>
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
<div
class="usa-footer__secondary-section"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-footer__logo grid-row mobile-lg:grid-col-6 mobile-lg:grid-gap-2"
data-testid="footerLogo"
>
<div
class="mobile-lg:grid-col-auto"
>
<img
alt="Whitehouse logo"
class="usa-footer__logo-img"
src="test-file-stub"
/>
</div>
<div
class="mobile-lg:grid-col-auto"
>
<div
class="j40-footer-ceq-font"
>
Council on Environmental Quality
</div>
</div>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
Help improve the site & data
<img
alt="launch icon"
src="test-file-stub"
/>
</button>
</div>
</footer>
</DocumentFragment>
`;

View file

@ -218,22 +218,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/cejst"
href="/en/"
>
Explore the tool
</a>
@ -248,6 +238,16 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
@ -329,11 +329,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
href="/en/public-engagement"
>
<button
class="usa-button usa-button--icon"
class="usa-button"
data-testid="button"
type="button"
>
Public Engagement
<div>
<img
alt="an icon that represents a calendar"
src="test-file-stub"
/>
<div>
Public engagement
</div>
</div>
</button>
</a>
</div>
@ -406,16 +414,10 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<div>
<div>
<div>
Draft communities list v0.1 (52MB unzipped)
Files available for download
</div>
<div>
The download package includes draft v0.1 of the list of disadvantaged communities
(.csv and .xlsx).
<span>
Last updated: 02/18/22
</span>
Download the data sources used in the CEJST (.csv and .xlsx, 52MB unzipped) or the shapefile, along with a codebook (.zip, 742MB unzipped).
</div>
<div>
<a
@ -435,11 +437,50 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
/>
</div>
<div>
Download package
Download data sources
</div>
</button>
</a>
</div>
<div>
Last updated: 04/06/22
</div>
<div>
<div>
<span
class="usa-tag"
data-testid="tag"
>
<strong>
NEW
</strong>
</span>
</div>
<a
data-cy="shapefile-link"
download=""
href="//"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<img
alt="download icon for download package"
src="test-file-stub"
/>
</div>
<div>
Download shapefile
</div>
</button>
</a>
</div>
<div>
Last updated: 04/06/22
</div>
</div>
</div>
</div>
@ -2394,7 +2435,30 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
@ -2429,6 +2493,19 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
@ -2439,7 +2516,7 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
<div
class="j40-h4"
>
Have a question about government services?
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
@ -2449,12 +2526,12 @@ exports[`rendering of the DatasetContainer checks if various text fields are vis
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
Check out the code on GitHub
</a>
</li>
</ul>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,556 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the DatasetContainer checks if various text fields are visible 1`] = `
<DocumentFragment>
<header
class="usa-header usa-header--basic"
data-testid="header"
role="banner"
>
<div>
<div>
<section
class="usa-banner"
data-testid="govBanner"
>
<div
class="usa-accordion"
>
<header
class="usa-banner__header"
>
<div
class="usa-banner__inner"
>
<div
class="grid-col-auto"
>
<img
alt="U.S. flag"
class="usa-banner__header-flag"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAG1BMVEUdM7EeNLIeM7HgQCDaPh/bPh/bPx/////bPyBEby41AAAAUElEQVQI123MNw4CABDEwD3jC/9/MQ1BQrgeOSkIqYe2o2FZtthXgQLgbHVMZdlsfUQFQnHtjP1+8BUhBDKOqtmfot6ojqPzR7TjdU+f6vkED+IDPhTBcMAAAAAASUVORK5CYII="
/>
</div>
<div
class="grid-col-fill tablet:grid-col-auto"
>
<p
class="usa-banner__header-text"
>
An official website of the United States government
</p>
<p
aria-hidden="true"
class="usa-banner__header-action"
>
Heres how you know
</p>
</div>
<button
aria-controls="gov-banner"
aria-expanded="false"
class="usa-accordion__button usa-banner__button"
type="button"
>
<span
class="usa-banner__button-text"
>
Heres how you know
</span>
</button>
</div>
</header>
<div
class="usa-banner__content usa-accordion__content"
hidden=""
id="gov-banner"
>
<div
class="grid-row grid-gap-lg"
>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWRvdC1nb3Y8L3RpdGxlPjxwYXRoIGZpbGw9IiMyMzc4QzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDBjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMyIDAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkMxNC4zMjcgNjQgMCA0OS42NzMgMCAzMiAwIDE0LjMyNyAxNC4zMjcgMCAzMiAwem0wIDEuMjA4QzE0Ljk5NCAxLjIwOCAxLjIwOCAxNC45OTQgMS4yMDggMzJTMTQuOTk0IDYyLjc5MiAzMiA2Mi43OTIgNjIuNzkyIDQ5LjAwNiA2Mi43OTIgMzIgNDkuMDA2IDEuMjA4IDMyIDEuMjA4em0xMC41OSAzOC44NThhLjg1Ny44NTcgMCAwIDEgLjg4Mi44MjJ2MS42NDJIMTguODg2di0xLjY0MmEuODU3Ljg1NyAwIDAgMSAuODgyLS44MjJINDIuNTl6TTI1LjQ0MyAyNy43NzR2OS44MjloMS42NDJ2LTkuODNoMy4yNzN2OS44M0gzMnYtOS44M2gzLjI3MnY5LjgzaDEuNjQzdi05LjgzaDMuMjcydjkuODNoLjc2YS44NTcuODU3IDAgMCAxIC44ODIuODIxdi44MjFoLTIxLjN2LS44MDlhLjg1Ny44NTcgMCAwIDEgLjg4LS44MmguNzYydi05Ljg0MmgzLjI3MnptNS43MzYtOC4xODhsMTIuMjkzIDQuOTE1djEuNjQyaC0xLjYzYS44NTcuODU3IDAgMCAxLS44ODIuODIySDIxLjQxYS44NTcuODU3IDAgMCAxLS44ODItLjgyMmgtMS42NDJ2LTEuNjQybDEyLjI5My00LjkxNXoiLz48L3N2Zz4="
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Official websites use .gov
</strong>
<br />
A
<strong>
.gov
</strong>
website belongs to an official government organization in the United States.
</p>
</div>
</div>
<div
class="usa-banner__guidance tablet:grid-col-6"
>
<img
alt=""
aria-hidden="true"
class="usa-banner__icon usa-media-block__img"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWh0dHBzPC90aXRsZT48cGF0aCBmaWxsPSIjNzE5RjJBIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMiAwYzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMiAwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJDMTQuMzI3IDY0IDAgNDkuNjczIDAgMzIgMCAxNC4zMjcgMTQuMzI3IDAgMzIgMHptMCAxLjIwOEMxNC45OTQgMS4yMDggMS4yMDggMTQuOTk0IDEuMjA4IDMyUzE0Ljk5NCA2Mi43OTIgMzIgNjIuNzkyIDYyLjc5MiA0OS4wMDYgNjIuNzkyIDMyIDQ5LjAwNiAxLjIwOCAzMiAxLjIwOHptMCAxOC44ODZhNy4yNDUgNy4yNDUgMCAwIDEgNy4yNDUgNy4yNDV2My4xMDNoLjUyYy44NiAwIDEuNTU3LjY5OCAxLjU1NyAxLjU1OHY5LjMyMmMwIC44Ni0uNjk3IDEuNTU4LTEuNTU3IDEuNTU4aC0xNS41M2MtLjg2IDAtMS41NTctLjY5Ny0xLjU1Ny0xLjU1OFYzMmMwLS44Ni42OTctMS41NTggMS41NTctMS41NThoLjUyVjI3LjM0QTcuMjQ1IDcuMjQ1IDAgMCAxIDMyIDIwLjA5NHptMCAzLjEwM2E0LjE0MiA0LjE0MiAwIDAgMC00LjE0MiA0LjE0MnYzLjEwM2g4LjI4NFYyNy4zNEE0LjE0MiA0LjE0MiAwIDAgMCAzMiAyMy4xOTd6Ii8+PC9zdmc+"
/>
<div
class="usa-media-block__body"
>
<p>
<strong>
Secure .gov websites use HTTPS
</strong>
<br />
A
<strong>
lock (
<span
class="icon-lock"
>
<img
alt="lock"
class="usa-banner__lock-image"
role="img"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUyIiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNTIgNjQiPjx0aXRsZT5sb2NrPC90aXRsZT48cGF0aCBmaWxsPSIjMUIxQjFCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNiAwYzEwLjQ5MyAwIDE5IDguNTA3IDE5IDE5djloM2E0IDQgMCAwIDEgNCA0djI4YTQgNCAwIDAgMS00IDRINGE0IDQgMCAwIDEtNC00VjMyYTQgNCAwIDAgMSA0LTRoM3YtOUM3IDguNTA3IDE1LjUwNyAwIDI2IDB6bTAgOGMtNS45NzkgMC0xMC44NDMgNC43Ny0xMC45OTYgMTAuNzEyTDE1IDE5djloMjJ2LTljMC02LjA3NS00LjkyNS0xMS0xMS0xMXoiLz48L3N2Zz4="
title="Lock"
/>
</span>
)
</strong>
or
<strong>
https://
</strong>
means youve safely connected to the .gov website. Share sensitive information only on official, secure websites.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<div>
<div>
<div />
<div>
<span>
This is a beta site.
</span>
<span>
It is an early, in-progress version of the tool with limited datasets that will
be regularly updated.
</span>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row"
data-testid="grid"
>
<div
class="grid-col-1"
data-testid="grid"
>
<img
alt="Climate and Economic Justice Screening Tool"
src="test-file-stub"
/>
</div>
<div
class="grid-col-6"
data-testid="grid"
>
<div>
<div>
Climate and Economic Justice
</div>
<div>
<div>
Screening Tool
</div>
<div>
BETA
</div>
</div>
</div>
</div>
<div
class="grid-col-fill"
data-testid="grid"
>
<button
class="usa-menu-btn"
data-testid="navMenuButton"
type="button"
>
Menu
</button>
<nav
class="usa-nav"
>
<button
class="usa-nav__close"
data-testid="navCloseButton"
type="button"
>
<img
alt="close"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5jbG9zZTwvdGl0bGU+PHBhdGggZmlsbD0iIzU2NUM2NSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTcuMDQyIDEuMTVsNS44MDkgNS44MDhhNCA0IDAgMCAxIDAgNS42NTdMNDMuNDY1IDMybDE5LjM4NiAxOS4zODVhNCA0IDAgMCAxIDAgNS42NTdsLTUuODA5IDUuODA5YTQgNCAwIDAgMS01LjY1NyAwTDMyIDQzLjQ2NSAxMi42MTUgNjIuODUxYTQgNCAwIDAgMS01LjY1NyAwbC01LjgwOS01LjgwOWE0IDQgMCAwIDEgMC01LjY1N0wyMC41MzUgMzIgMS4xNDkgMTIuNjE1YTQgNCAwIDAgMSAwLTUuNjU3bDUuODA5LTUuODA5YTQgNCAwIDAgMSA1LjY1NyAwTDMyIDIwLjUzNSA1MS4zODUgMS4xNDlhNCA0IDAgMCAxIDUuNjU3IDB6Ii8+PC9zdmc+"
/>
</button>
<ul
class="usa-nav__primary usa-accordion"
>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-explore-the-tool"
href="/en/"
>
Explore the tool
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-methodology"
href="/en/methodology"
>
Methodology & data
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-about"
href="/en/about"
>
About
</a>
</li>
<li
class="usa-nav__primary-item"
>
<a
data-cy="nav-link-contact"
href="/en/contact"
>
Contact
</a>
</li>
<li
class="usa-nav__primary-item"
>
<div />
</li>
</ul>
</nav>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-alert usa-alert--info"
data-testid="alert"
>
<div
class="usa-alert__body"
>
<h4
class="usa-alert__heading"
>
Improvements to the map on the Explore the tool page
</h4>
<p
class="usa-alert__text"
>
View improvements made to the display of the information for each census tract and
<a
class="usa-link usa-link--external"
data-cy=""
href="mailto:Screeningtool-Support@omb.eop.gov"
rel="noreferrer"
target="_blank"
>
send feedback
</a>
.
</p>
</div>
</div>
</div>
</header>
<main
id="main-content"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<h1>
Technical Support Document
</h1>
<div
class="grid-row"
data-testid="grid"
>
Coming Soon!
</div>
</div>
</main>
<footer
class="j40-footer"
>
<div
class="usa-footer__primary-section pb2"
data-cy="footer-primary-block"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="grid-row tablet-lg:grid-col4"
>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Contact
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<address
class="usa-footer__address j40-footer-address"
>
<div
class="usa-footer__contact-info grid-row grid-gap"
>
<div
class="grid-col-auto"
>
Council on Environmental Quality
</div>
<div
class="grid-col-auto"
>
730 Jackson Pl NW
</div>
<div
class="grid-col-auto"
>
Washington, D.C. 20506
</div>
<div
class="grid-col-auto"
>
(202) 395-5750
</div>
</div>
</address>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
More information
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="footer-link-first-child"
href="/en/public-engagement"
>
Engagement calender
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="request-for-infomation"
href="https://www.federalregister.gov/d/2022-03920"
rel="noreferrer"
target="_blank"
>
Request for Infomation
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="whitehouse-gov"
href="https://www.whitehouse.gov/"
rel="noreferrer"
target="_blank"
>
Whitehouse.gov
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="freedom-of-information-act-(foia)"
href="https://www.whitehouse.gov/ceq/foia"
rel="noreferrer"
target="_blank"
>
Freedom of Information Act (FOIA)
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="privacy-policy"
href="https://www.whitehouse.gov/privacy/"
rel="noreferrer"
target="_blank"
>
Privacy Policy
</a>
</li>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external"
data-cy="find-a-contact-at-usa-gov"
href="https://www.usa.gov/"
rel="noreferrer"
target="_blank"
>
Find a contact at USA.gov
</a>
</li>
</ul>
</section>
</div>
<div
class="mobile-lg:grid-col-12 desktop:grid-col-4"
>
<section>
<div
class="j40-h4"
>
Want to contribute?
</div>
<ul
class="usa-list usa-list--unstyled"
>
<li
class="usa-footer__secondary-link"
>
<a
class="usa-link usa-link--external footer-link-first-child"
data-cy="check-out-the-code-on-github"
href="https://github.com/usds/justice40-tool"
rel="noreferrer"
target="_blank"
>
Check out the code on GitHub
</a>
</li>
</ul>
</section>
</div>
</div>
</div>
</div>
<div
class="usa-footer__secondary-section"
>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<div
class="usa-footer__logo grid-row mobile-lg:grid-col-6 mobile-lg:grid-gap-2"
data-testid="footerLogo"
>
<div
class="mobile-lg:grid-col-auto"
>
<img
alt="Whitehouse logo"
class="usa-footer__logo-img"
src="test-file-stub"
/>
</div>
<div
class="mobile-lg:grid-col-auto"
>
<div
class="j40-footer-ceq-font"
>
Council on Environmental Quality
</div>
</div>
</div>
</div>
</div>
<div
class="grid-container-desktop-lg"
data-testid="gridContainer"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
Help improve the site & data
<img
alt="launch icon"
src="test-file-stub"
/>
</button>
</div>
</footer>
</DocumentFragment>
`;

View file

@ -1,12 +1,12 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../test/testHelpers';
import Index from './index';
import {LocalizedComponent} from '../../test/testHelpers';
import AboutPage from '../about';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(
<LocalizedComponent>
<Index location={window.location}/>
<AboutPage location={window.location}/>
</LocalizedComponent>,
);

View file

@ -1,7 +1,7 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../test/testHelpers';
import Contact from './contact';
import {LocalizedComponent} from '../../test/testHelpers';
import Contact from '../contact';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import DownloadsPage from '../downloads';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(
<LocalizedComponent>
<DownloadsPage location={window.location}/>
</LocalizedComponent>,
);
it('checks if various text fields are visible', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import FAQPage from '../frequently-asked-questions';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(
<LocalizedComponent>
<FAQPage location={window.location}/>
</LocalizedComponent>,
);
it('checks if various text fields are visible', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -1,7 +1,7 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../test/testHelpers';
import Meth from './methodology';
import {LocalizedComponent} from '../../test/testHelpers';
import Meth from '../methodology';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import PublicEngagementPage from '../public-engagement';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(
<LocalizedComponent>
<PublicEngagementPage location={window.location}/>
</LocalizedComponent>,
);
it('checks if various text fields are visible', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -0,0 +1,16 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import TSDPage from '../technical-support-document';
describe('rendering of the DatasetContainer', () => {
const {asFragment} = render(
<LocalizedComponent>
<TSDPage location={window.location}/>
</LocalizedComponent>,
);
it('checks if various text fields are visible', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -132,7 +132,7 @@ components include:
flex-direction: column;
}
}
.j40-mb5-mt3 {
@include u-margin-bottom(5);
@include u-margin-top(3);