Remove public engagement page and add v1.0 to previous versions

This commit is contained in:
Carlos Felix 2024-12-18 10:05:19 -05:00 committed by Carlos Felix
commit 64839d01ee
42 changed files with 322 additions and 2980 deletions

View file

@ -144,13 +144,6 @@ const J40Header = ({location}:IJ40Header) => {
data-cy={'nav-link-about'}>
{intl.formatMessage(COMMON_COPY.HEADER.ABOUT)}
</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>,
<Link
to={PAGES_ENDPOINTS.FAQS}
key={'faqs'}
@ -197,8 +190,7 @@ const J40Header = ({location}:IJ40Header) => {
<NavDropDownButton
className={
lastSegmentLocation === PAGES_ENDPOINTS.ABOUT.slice(1) ||
lastSegmentLocation === PAGES_ENDPOINTS.FAQS.slice(1) ||
lastSegmentLocation === PAGES_ENDPOINTS.PUBLIC_ENG.slice(1) ?
lastSegmentLocation === PAGES_ENDPOINTS.FAQS.slice(1) ?
'usa-current' :
''
}

View file

@ -318,16 +318,6 @@ exports[`rendering of the J40Header checks if component renders 1`] = `
About
</a>
</li>
<li
class="usa-nav__submenu-item"
>
<a
data-cy="nav-link-public-engagement"
href="/en/public-engagement"
>
Engagement calendar
</a>
</li>
<li
class="usa-nav__submenu-item"
>

View file

@ -1,50 +0,0 @@
@use '../../styles/design-system.scss' as *;
.tagContainer {
align-self: flex-end;
@include u-margin-bottom(1);
@include u-margin-right(1);
.tag {
// @include u-bg("gray-cool-10"); // Standard gray
@include u-bg("yellow-20v"); // "new" yellow
color: black;
border-radius: 5px;
@include u-text('bold');
}
}
.container {
display: flex;
flex-direction: column;
@include u-padding-top(2.5);
@include u-margin-top(4);
.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

@ -1,19 +0,0 @@
declare namespace PublicEngagementButton {
export interface IPublicEventScss {
tag: string;
tagContainer: string;
container: string;
link: string;
engagementButton: string;
buttonContainer: string;
buttonImage: string;
}
}
declare const PublicEventScssModule: PublicEngagementButton.IPublicEventScss & {
/** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */
locals: PublicEngagementButton.IPublicEventScss;
};
export = PublicEventScssModule;

View file

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

View file

@ -1,46 +0,0 @@
import React from 'react';
import {useIntl, Link} from 'gatsby-plugin-intl';
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();
return (
<div className={styles.container}>
{/* Remove Updated Tag for now */}
{/* <div className={styles.tagContainer}>
<Tag className={styles.tag}>
{intl.formatMessage(PUBLIC_ENG_COPY.PUBLIC_ENG_BUTTON.TAG_LABEL)}
</Tag>
</div> */}
<Link className={styles.link} to={'/public-engagement'}>
<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>
);
};
export default PublicEngageButton;

View file

@ -1,27 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the PublicEngageButton checks if component renders 1`] = `
<DocumentFragment>
<div>
<a
href="/en/public-engagement"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<img
alt="an icon that represents a calendar"
src="test-file-stub"
/>
<div>
Public engagement
</div>
</div>
</button>
</a>
</div>
</DocumentFragment>
`;

View file

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

View file

@ -1,5 +0,0 @@
@use '../../styles/design-system.scss' as *;
.description {
@include u-margin-top(2);
}

View file

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

View file

@ -1,18 +0,0 @@
import * as React from 'react';
import {render} from '@testing-library/react';
import {LocalizedComponent} from '../../test/testHelpers';
import PublicEvent from './PublicEvent';
import * as PUBLIC_ENG_COPY from '../../data/copy/publicEngage';
describe('rendering of the PublicEvent', () => {
const {asFragment} = render(
<LocalizedComponent>
<PublicEvent event={PUBLIC_ENG_COPY.EVENTS[0]}/>
</LocalizedComponent>,
);
it('checks if component renders', () => {
expect(asFragment()).toMatchSnapshot();
});
});

View file

@ -1,81 +0,0 @@
import React from 'react';
import {useIntl} from 'gatsby-plugin-intl';
import {
CollectionDescription,
CollectionHeading,
CollectionItem,
CollectionThumbnail,
Button,
} from '@trussworks/react-uswds';
import LinkTypeWrapper from '../LinkTypeWrapper';
import * as PUBLIC_ENGAGE_COPY from '../../data/copy/publicEngage';
import * as styles from './PublicEvent.module.scss';
export interface IPublicEvent {
event: {
DATE: Date,
NAME: JSX.Element,
DESC: JSX.Element,
NUMBER: Number,
IMAGE: React.ReactElement | string,
EXPIRED_IMG: React.ReactElement | string,
FIELDS: JSX.Element,
REG_LINK?: string | null,
DATA_CY: string,
}
}
const PublicEvent = ({event}:IPublicEvent) => {
const intl = useIntl();
const eventName = event.NUMBER === 0 ?
`CEJST ${intl.formatMessage(event.NAME)}` :
`CEJST ${intl.formatMessage(event.NAME)} #${event.NUMBER}`;
const isEventExpired = new Date() > event.DATE;
return (
<CollectionItem
variantComponent={
<CollectionThumbnail src={isEventExpired ? event.EXPIRED_IMG : event.IMAGE} alt="Alt text" />
}>
{/* Heading */}
<CollectionHeading headingLevel='h3'>
{isEventExpired ? eventName : <LinkTypeWrapper
linkText={eventName}
internal={false}
url={event.REG_LINK}
openUrlNewTab={true}
dataCy={event.DATA_CY}
/>}
</CollectionHeading>
{/* Description */}
<CollectionDescription className={styles.description}>
{intl.formatMessage(event.DESC)}
</CollectionDescription>
{/* Event info */}
<CollectionDescription className={styles.description}>
<b>
{intl.formatMessage(PUBLIC_ENGAGE_COPY.EVENT_FIELDS.EVENT_INFO)}
</b>
{`: ${intl.formatMessage(event.FIELDS.INFO)}`}
</CollectionDescription>
{/* Registration Link */}
<CollectionDescription className={styles.description}>
<a href={event.REG_LINK} target={'_blank'} rel="noreferrer">
<Button type='button' disabled={isEventExpired ? true : false}>
{intl.formatMessage(PUBLIC_ENGAGE_COPY.EVENT_FIELDS.REG_LINK)}
</Button>
</a>
</CollectionDescription>
</CollectionItem>
);
};
export default PublicEvent;

View file

@ -1,61 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the PublicEvent checks if component renders 1`] = `
<DocumentFragment>
<li
class="usa-collection__item"
>
<img
alt="Alt text"
class="usa-collection__img"
src="test-file-stub"
/>
<div
class="usa-collection__body"
>
<h3
class="usa-collection__heading"
>
CEJST training session #1
</h3>
<p
class="usa-collection__description"
>
The White House Council on Environmental Quality (CEQ), in partnership with the U.S. Digital
Service, is hosting a series of 'Training Webinars' for users of the Climate and Economic
Justice Screening Tool. These webinars are an opportunity for members of the public to learn how to
use the current version of the tool. The presenters at these webinars will be available to
provide technical support and address issues related to accessing and using the tool.
</p>
<p
class="usa-collection__description"
>
<b>
Event info
</b>
: March 9th (4:00 - 5:00 PM EST)
</p>
<p
class="usa-collection__description"
>
<a
href="https://pitc.zoomgov.com/webinar/register/WN_D-Om_xXhTtiLv71y3Rr1CQ"
rel="noreferrer"
target="_blank"
>
<button
class="usa-button"
data-testid="button"
disabled=""
type="button"
>
Registration link
</button>
</a>
</p>
</div>
</li>
</DocumentFragment>
`;

View file

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

View file

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

View file

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

View file

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

View file

@ -1,73 +0,0 @@
import React from 'react';
import {Button, SummaryBox, SummaryBoxContent, SummaryBoxHeading} from '@trussworks/react-uswds';
import {useIntl} from 'gatsby-plugin-intl';
import DownloadButton from '../DownloadButton';
import * as styles from './PublicVideoBox.module.scss';
import * as PUBLIC_COPY from '../../data/copy/publicEngage';
import {getDownloadFileUrl} from '../../data/copy/downloads';
// @ts-ignore
import launchIcon from '/node_modules/uswds/dist/img/usa-icons/launch.svg';
interface IPublicVideoBox {
isBeta: boolean,
youTubeLink: string,
}
const PublicVideoBox = ({isBeta, youTubeLink}:IPublicVideoBox) => {
const intl = useIntl();
return (
<SummaryBox
className={isBeta ? styles.publicVideoContainerBeta : styles.publicVideoContainer}>
<SummaryBoxHeading headingLevel='h2'>
{isBeta ?
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.TITLE_BETA) :
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.TITLE)}
</SummaryBoxHeading>
<SummaryBoxContent>
{isBeta ? PUBLIC_COPY.RICH_COPY.VIDEO_BOX_BODY2 : PUBLIC_COPY.RICH_COPY.VIDEO_BOX_BODY1}
<a
className={styles.publicVideoLink}
href={youTubeLink}
target={'_blank'}
rel="noreferrer"
>
<Button
type="button"
className={styles.youTubeBtn}
>
<div className={styles.buttonContainer}>
<div className={styles.buttonText}>
{isBeta ?
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BUTTON1_BETA_TEXT) :
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BUTTON1_TEXT)
}
</div>
<img
className={styles.buttonImage}
src={launchIcon}
alt={intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.IMG_ALT_TEXT1)}
/>
</div>
</Button>
</a>
{isBeta && <DownloadButton
downloadLink={getDownloadFileUrl(process.env.GATSBY_FILE_DL_PATH_BETA_TRAINING_SLIDES_PPT, true)}
buttonText={isBeta ?
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BUTTON2_BETA_TEXT) :
intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.BUTTON2_TEXT)
}
imageAltTagText={intl.formatMessage(PUBLIC_COPY.PUBLIC_ENG_VIDEO.IMG_ALT_TEXT2)}
color={isBeta ? 'gray' : 'yellow'}
/>}
</SummaryBoxContent>
</SummaryBox>
);
};
export default PublicVideoBox;

View file

@ -1,113 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`rendering of the PublicVideoBox checks if component renders when it is NOT in beta 1`] = `
<DocumentFragment>
<div
class="usa-summary-box"
data-testid="summary-box"
>
<div
class="usa-summary-box__body"
>
<h2
class="usa-summary-box__heading"
>
What's new overview
</h2>
<div
class="usa-summary-box__text"
>
Watch a recorded update from CEQ on the changes in the 1.0 version of the tool.
<a
rel="noreferrer"
target="_blank"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<div>
Watch on YouTube
</div>
<img
alt="the icon to show that this button will open in a new tab"
src="test-file-stub"
/>
</div>
</button>
</a>
</div>
</div>
</div>
</DocumentFragment>
`;
exports[`rendering of the PublicVideoBox checks if component renders when it is in beta 1`] = `
<DocumentFragment>
<div
class="usa-summary-box"
data-testid="summary-box"
>
<div
class="usa-summary-box__body"
>
<h2
class="usa-summary-box__heading"
>
Need information about the public beta?
</h2>
<div
class="usa-summary-box__text"
>
Watch a recorded version of the beta version of the CEJST training on YouTube.
<a
rel="noreferrer"
target="_blank"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<div>
Watch on beta demo
</div>
<img
alt="the icon to show that this button will open in a new tab"
src="test-file-stub"
/>
</div>
</button>
</a>
<a
download=""
href="//"
>
<button
class="usa-button"
data-testid="button"
type="button"
>
<div>
<div>
Download beta slide deck
</div>
<img
alt="the icon to show that this button will download the file"
src="test-file-stub"
/>
</div>
</button>
</a>
</div>
</div>
</div>
</DocumentFragment>
`;

View file

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