Release of improve census tract display info (#1480)

* will replace mapbox logo (#1477)

* Replace maplibre logo with mapbox
* change the logo go to mapbox
* Add CodeQL and modify mapbox logo via useRef()

* Make side panel formula more apparent (#1481)

* Add ExceedBurden and CategorySpacer

- create ExceedBurden component that is used twice
- create a .categorySpacer class for the AND component
- modify indicator styling to work with background higlighting
- add BE stubs for Burden booleans
- remove Indicators header
- add copy to intl

* Add comments on disadv. indicator

- darken bg color
- add a border
- bold the text

* Adds indicator arrow and sub text to sidepanel

- add threshold to IndicatorInfo
- update SASS for indicatorValueCol
- update tests
- add constants to intl

* Make disadv indicators bold

- add 1px margin between indicators

* Add BE signals for new sidepanel

- tested with staging backend

* Add staging hash to URL

* Fix poverty backend signal

- refactor backend signals in constants file

* Make exceed burden value bold

* Refactor indicator values

- remove arrows and subtext when value is N/A
- Show -- when value is N/A
- intl alt tags in indicator
- fix alignment of arrows
- update snapshots

* Revert settings.json file

* revert settings file again

* Refactor what is displayed when data unavailable

- add an unavailable icon
- add data is not available subtext
- modify low income threshold
- update snapshots
- factor out rendered logic to JSX functions
- update image alt tags and intl

* Refactor Indicator component to unit test

- Add unit test for Indicator value icon
- Add unit test for Indicator value sub-text
- update snapshots

* Add de-coupled BE signals

* Rebase hotfix

* Fix indicator value 0 shows N/A icon

- remove coercion of 0 as null
- make components check null / failure case first and default all else
- update unit test to account for this use case
- update snapshots

* Add null check for percentage suffix

- update unit tests
- update snapshots

* remove cypress zoom test

- intermittent failure continue

* revert cypress to 8.3.0

* Revert cypress-cucumber

* Add Chrome to frontend deploy action

* Update logo css classname after update to maplibre (#1482)

* Add new wording to the map panel that appears upon load when no tract is selected and Outstanding CEQ changes to sidepanel (#1483)

* Add new side panel unselected tract

- add new icons
- refactor old component
- follow component folder pattern
- update snapshot tests
- add to intl

* Add bold to text, add spacing and correct typos

* Add tabindex to sidepanel content to pass a11y

* Refactor i18n anti-patterns on explore tool page

- add i18n patterns for nesting
- add i18n pattern for partial strings
- add i18n rich-text functions
- add i18n pattern for minimal context
- add i18n pattern for dates
- add i18n pattern for numbers
- add i18n pattern for centralizing rich text functions
- add i18n patter for description
- add i18n pattern for ids
- see shared drive file J40 Localization Patterns for status on refactor

* Remove links of expired public engagement sessions

- allow cypress tests to pass

* Update snapshots for public enagement page

* Copy updates to non-selected side panel

- update snapshots

* Updates to side panel copy

- ag loss and building loss text
- clean transit
- NPL RMP sites
- proportion to percent
- update snapshots
- updates to es.json

* Updates from QA

- make title smaller
- make margins above icons smaller
- add bottom margin on container
- add census before tracts in copy
- update snapshots

* Update snapshot after rebase

* disable max-len on description fields on i18n copy (#1487)

* Remove color key from Explore the tool page (#1484)

* Remove color key

* Add comment to Language component

* Move tribal note copy to meth page

- adjust responsive sizing props on Grid to allow for proper mobile viewing on Explore page

* Add responsive size to text under map

- reduce z-index of territory focus control so that it doesn't go over the survey button on mobile

* Rewrite the two "notes about" the "low" datasets (#1489)

* Refactor all copy to adhere to recommended patterns

- remove LowIncome component
- add intl README
- update snapshots

* Fix key error missing in datasetCard

- update type in IIndicators
- update snapshots

* Add two notes on low dataset cards

- refactor DatasetCard to standard component pattern
- add a note to the interface
- update snapshots

* Add function comment to force re-build

* Update missing sass module file name

* Update sidepanel non-selected copy (#1495)

* Update sidepanel non-selected copy

- update snapshots

* Update URL in deploy FE for cypress test

* removing trailing slash

* Add wording to UI that calls out improvements to display of census tract information (#1492)

* Adds census tract alert on all pages

- add i18n text
- updates snapshots
- makes public engagement page a fast link

* Style the Alert to have more space around it

* Update copy on Alert

- update snapshots

* Swap gerkhin order

* Set Alert to expire on Apr 15th 2022

* Add WHEJAC meetings (#1501)

* Add WHEJAC meetings

- add expired icons
- automatically load expired icons when event has passed
- update snapshots

* Update public engagement button

* Remove public eng gherkin tests

- need to troubleshoot why these are failing

* Remove the before CEQ in copy

* Make the count of thresholds exceeded on the side panel more clear (#1503)

* Update category / thrsh count in side panel

- connect BE signal of CC to side panel
- i18n functions to call from AreaDetail component
- update snapshots
-

* Update send feedback - color and icon

- update snapshots

* Update both exceed statements in sidepanel

- update snapshots

* Update copy for higher ed and high school (#1502)

* Update copy for higher ed and high school

- update dataset cards
- update taskforce card AND
- update side panel indicator titles
- add i18n for dataset cards title
- update snapshots

* Update threshold values for Higher ed and HS.

- update snapshots

* Update AND clause

- missing 'of' in copy
- update BE signal for non-higher ed enrollment signal
This commit is contained in:
Vim 2022-03-29 22:49:57 -04:00 committed by GitHub
commit db6b5de24e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
91 changed files with 5339 additions and 3220 deletions

View file

@ -1,120 +1,162 @@
/* eslint-disable max-len */
/* eslint-disable react/display-name */
import React from 'react';
import {FormattedMessage} from 'gatsby-plugin-intl';
import {defineMessages} from 'react-intl';
import LinkTypeWrapper from '../../components/LinkTypeWrapper';
/*
* i18n curried functions from react-intl (aka format.js)
* using ver3 of the docs as this is what gatsby-plugin-intl uses:
* https://formatjs.io/docs/react-intl/upgrade-guide-3x#enhanced-formattedmessage--formatmessage-rich-text-formatting
*
* */
export const italicFn = (str:string) => <i>{str}</i>;
export const boldFn = (str:string) => <strong>{str}</strong>;
export const simpleLink = (href:string) => (str:string) => <a href={href}>{str}</a>;
// 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 FEEDBACK_EMAIL = 'Screeningtool-Support@omb.eop.gov';
// Beta Banner
export const BETA_BANNER = defineMessages({
TITLE: {
id: 'banner.beta.title',
id: 'common.pages.banner.beta.title',
defaultMessage: 'This is a beta site.',
description: 'the main title of the beta banner',
description: 'Navigate to the about page. This is the main title of the beta banner',
},
INFO: {
id: 'banner.beta.info',
id: 'common.pages.banner.beta.info',
defaultMessage: `It is an early, in-progress version of the tool with limited datasets that will
be regularly updated.`,
description: 'the main info of the beta banner',
description: 'Navigate to the about page. This is the main info of the beta banner',
},
});
// Alerts
// Expiration month is zero-based: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth
export const ALERTS = {
CENSUS_TRACT: defineMessages({
TITLE: {
id: 'common.pages.alerts.census.tract.title',
defaultMessage: 'Improvements to the map on the Explore the tool page',
description: 'Navigate to any page. This the title of the alert that informs the user that new census tract information is available',
},
}),
EXPIRATION_DATE: new Date(2022, 3, 15), // Set expiration for Apr 15th 2022.
CENSUS_TRACT_DESCRIPTION: <FormattedMessage
id={'common.pages.alerts.census.tract.description'}
defaultMessage={`View improvements made to the display of the information for each census tract and <link1>send feedback</link1>.`}
description={`Navigate to any page. This the title of the alert that informs the user that new census tract information is available`}
values={{
link1: linkFn(`mailto:${FEEDBACK_EMAIL}`, false, true),
}}
/>,
};
// Header
export const HEADER = defineMessages({
TITLE_LINE_1: {
id: 'header.title.line1',
id: 'common.pages.header.title.line1',
defaultMessage: `Climate and Economic Justice`,
description: 'Title in nav header line 1 of 2',
description: 'Navigate to the about page. This is Title in nav header line 1 of 2',
},
TITLE_LINE_2: {
id: 'header.title.line2',
id: 'common.pages.header.title.line2',
defaultMessage: `Screening Tool`,
description: 'Title in nav header line 2 of 2',
description: 'Navigate to the about page. This is Title in nav header line 2 of 2',
},
ABOUT: {
id: 'header.about',
id: 'common.pages.header.about',
defaultMessage: 'About',
description: 'Header navigate item to the about page',
description: 'Navigate to the about page. This is Header navigate item to the about page',
},
EXPLORE: {
id: 'header.explore',
id: 'common.pages.header.explore',
defaultMessage: 'Explore the tool',
description: 'Header navigate item to the Explore the tool page',
description: 'Navigate to the about page. This is Header navigate item to the Explore the tool page',
},
METHODOLOGY: {
id: 'header.methodology',
id: 'common.pages.header.methodology',
defaultMessage: 'Methodology & data',
description: 'Header navigate item to the Methodology page',
description: 'Navigate to the about page. This is Header navigate item to the Methodology page',
},
CONTACT: {
id: 'header.contact',
id: 'common.pages.header.contact',
defaultMessage: 'Contact',
description: 'Header navigate item to the Contact page',
description: 'Navigate to the about page. This is Header navigate item to the Contact page',
},
});
// Footer
export const FOOTER = defineMessages({
ARIA_LABEL: {
id: 'footer.arialabel',
id: 'common.pages.footer.arialabel',
defaultMessage: 'Footer navigation',
description: 'aria-label text for whole footer',
description: 'Navigate to the about page. This is aria-label text for whole footer',
},
TITLE: {
id: 'footer.logo.title',
id: 'common.pages.footer.logo.title',
defaultMessage: 'Council on Environmental Quality',
description: 'Footer under logo',
description: 'Navigate to the about page. This is Footer under logo',
},
MORE_INFO: {
id: 'footer.moreinfoheader',
id: 'common.pages.footer.moreinfoheader',
defaultMessage: 'More information',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
WHITEHOUSE: {
id: 'footer.whitehouse.text',
id: 'common.pages.footer.whitehouse.text',
defaultMessage: 'Whitehouse.gov',
description: 'Footer Whitehouse.gov link text',
description: 'Navigate to the about page. This is Footer Whitehouse.gov link text',
},
WHITEHOUSE_LINK: {
id: 'footer.whitehouse.link',
id: 'common.pages.footer.whitehouse.link',
defaultMessage: 'https://www.whitehouse.gov/',
description: 'Footer Whitehouse.gov link text',
description: 'Navigate to the about page. This is Footer Whitehouse.gov link text',
},
FOIA: {
id: 'footer.foia.text',
id: 'common.pages.footer.foia.text',
defaultMessage: 'Freedom of Information Act (FOIA)',
description: 'Footer FOIA link text',
description: 'Navigate to the about page. This is Footer FOIA link text',
},
PRIVACY: {
id: 'footer.privacy.text',
id: 'common.pages.footer.privacy.text',
defaultMessage: 'Privacy Policy',
description: 'Footer privacy policy link text',
description: 'Navigate to the about page. This is Footer privacy policy link text',
},
PRIVACY_LINK: {
id: 'footer.privacy.link',
id: 'common.pages.footer.privacy.link',
defaultMessage: 'https://www.whitehouse.gov/privacy/',
description: 'Footer privacy policy link text',
description: 'Navigate to the about page. This is Footer privacy policy link text',
},
LOGO_ALT: {
id: 'footer.whitehouselogoalt',
id: 'common.pages.footer.whitehouselogoalt',
defaultMessage: 'Whitehouse logo',
description: 'Footer Whitehouse logo alt text',
description: 'Navigate to the about page. This is Footer Whitehouse logo alt text',
},
QUESTIONS: {
id: 'footer.questionsheader',
id: 'common.pages.footer.questionsheader',
defaultMessage: 'Have a question about government services?',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
FIND_CONTACT: {
id: 'footer.findcontact',
id: 'common.pages.footer.findcontact',
defaultMessage: 'Find a contact at USA.gov',
description: 'Footer find contact link text',
description: 'Navigate to the about page. This is Footer find contact link text',
},
FIND_CONTACT_LINK: {
id: 'footer.findcontact.link',
id: 'common.pages.footer.findcontact.link',
defaultMessage: 'https://www.usa.gov/',
description: 'Footer find contact link text',
description: 'Navigate to the about page. This is Footer find contact link text',
},
CONTACT: {
id: 'footer.contactheader',
id: 'common.pages.footer.contactheader',
defaultMessage: 'Contact',
description: 'Footer column header',
description: 'Navigate to the about page. This is Footer column header',
},
});
@ -126,4 +168,11 @@ export const FOOTER_CEQ_ADDRESS = {
}
;
export const CONSOLE_ERROR = defineMessages({
STAGE_URL: {
id: 'common.pages.console.error.stage.url',
defaultMessage: `
Please check stage_hash value. It must be a 4 digit decimal value / 40 digit hexadecimal value`,
description: 'Navigate to the about page. This is console error staging URL',
},
});