From 128023c7777b4090cefe554296c8d46dd9ea7066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilia=20M=C3=A4kel=C3=A4?= Date: Mon, 15 Jan 2024 11:22:39 +0200 Subject: [PATCH] feat: Add navigation and a new page for processed applications --- .../browser-tests/page-model/MainIngress.ts | 2 +- .../applicant/public/locales/en/common.json | 26 +++++++++--- .../applicant/public/locales/fi/common.json | 26 +++++++++--- .../applicant/public/locales/sv/common.json | 26 +++++++++--- .../src/components/header/Header.tsx | 4 ++ .../src/components/header/useHeader.ts | 24 ++++++++++- .../components/mainIngress/MainIngress.sc.ts | 10 ----- .../components/mainIngress/MainIngress.tsx | 40 +++++++------------ .../decisions/DecisionsMainIngress.tsx | 15 +++++++ .../frontPage/FrontPageMainIngress.sc.ts | 12 ++++++ .../frontPage/FrontPageMainIngress.tsx | 40 +++++++++++++++++++ .../frontPage/useFrontPageMainIngress.ts | 32 +++++++++++++++ .../components/mainIngress/useMainIngress.ts | 21 ---------- frontend/benefit/applicant/src/constants.ts | 1 + .../applicant/src/context/AppContext.tsx | 14 +++++++ .../src/context/AppContextProvider.tsx | 23 +++++++++++ frontend/benefit/applicant/src/pages/_app.tsx | 27 ++++++++----- .../benefit/applicant/src/pages/decisions.tsx | 40 +++++++++++++++++++ .../benefit/applicant/src/pages/index.tsx | 15 ++++++- 19 files changed, 309 insertions(+), 89 deletions(-) create mode 100644 frontend/benefit/applicant/src/components/mainIngress/decisions/DecisionsMainIngress.tsx create mode 100644 frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.sc.ts create mode 100644 frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.tsx create mode 100644 frontend/benefit/applicant/src/components/mainIngress/frontPage/useFrontPageMainIngress.ts create mode 100644 frontend/benefit/applicant/src/context/AppContext.tsx create mode 100644 frontend/benefit/applicant/src/context/AppContextProvider.tsx create mode 100644 frontend/benefit/applicant/src/pages/decisions.tsx diff --git a/frontend/benefit/applicant/browser-tests/page-model/MainIngress.ts b/frontend/benefit/applicant/browser-tests/page-model/MainIngress.ts index 467ec178d8..6d4d013cd9 100644 --- a/frontend/benefit/applicant/browser-tests/page-model/MainIngress.ts +++ b/frontend/benefit/applicant/browser-tests/page-model/MainIngress.ts @@ -8,7 +8,7 @@ class MainIngress extends ApplicantPageComponent { } newApplicationButton = this.component.findByRole('button', { - name: this.translations.mainIngress.newApplicationBtnText, + name: this.translations.mainIngress.frontPage.newApplicationBtnText, }); public async clickCreateNewApplicationButton(): Promise { diff --git a/frontend/benefit/applicant/public/locales/en/common.json b/frontend/benefit/applicant/public/locales/en/common.json index 48ae5b85e5..f133530336 100644 --- a/frontend/benefit/applicant/public/locales/en/common.json +++ b/frontend/benefit/applicant/public/locales/en/common.json @@ -423,7 +423,11 @@ "title": "Application’s messages" }, "languageMenuButtonAriaLabel": "Select language", - "menuToggleAriaLabel": "Menu" + "menuToggleAriaLabel": "Menu", + "navigation": { + "home": "Applications", + "decisions": "Archive" + } }, "footer": { "copyrightText": "Copyright", @@ -459,11 +463,17 @@ "en": "In English" }, "mainIngress": { - "heading": "Applications", - "description1": "Welcome to the Helsinki benefit service.", - "description2": "Before filling out the application, review the necessary information and required attachments if needed. You can save an incomplete application as a draft and return to it later.", - "linkText": " Please take a look at the required information and attachments before filling in the application.", - "newApplicationBtnText": "Submit a new application" + "frontPage": { + "heading": "Applications", + "description1": "Welcome to the Helsinki benefit service.", + "description2": "Before filling out the application, review the necessary information and required attachments if needed. You can save an incomplete application as a draft and return to it later.", + "linkText": " Please take a look at the required information and attachments before filling in the application.", + "newApplicationBtnText": "Submit a new application" + }, + "decisions": { + "heading": "Archive", + "description": "Review Helsinki benefit applications for which decisions have been made." + } }, "prerequisiteReminder": { "heading": "Did you remember these before filling out the application form?", @@ -628,6 +638,7 @@ "pageTitles": { "login": "Helsinki benefit - Log in", "home": "Helsinki benefit - Frontpage", + "decisions": "Helsinki benefit - Archive", "createApplication": "Helsinki benefit - Application - Create", "editApplication": "Helsinki benefit - Application - Edit", "viewApplication": "Helsinki benefit - Application - View", @@ -732,5 +743,8 @@ "title": "Sivun palautenappeja ei voida näyttää", "text": "Toiminnon käyttämiseksi vaaditaan, että hyväksyt sivuston evästeet. Pääsen antamaan palautetta tästä sivusta sallimalla evästeasetuksista tilastointiin liittyvät evästeet.", "button": "Muokkaa evästeasetuksia" + }, + "decisions": { + "heading": "Archive" } } diff --git a/frontend/benefit/applicant/public/locales/fi/common.json b/frontend/benefit/applicant/public/locales/fi/common.json index 778d0474a6..a4a66ee684 100644 --- a/frontend/benefit/applicant/public/locales/fi/common.json +++ b/frontend/benefit/applicant/public/locales/fi/common.json @@ -423,7 +423,11 @@ "title": "Hakemuksen viestit" }, "languageMenuButtonAriaLabel": "Valitse kieli", - "menuToggleAriaLabel": "Valikko" + "menuToggleAriaLabel": "Valikko", + "navigation": { + "home": "Hakemukset", + "decisions": "Arkisto" + } }, "footer": { "copyrightText": "Copyright", @@ -459,11 +463,17 @@ "en": "In English" }, "mainIngress": { - "heading": "Hakemukset", - "description1": "Tervetuloa Helsinki-lisän asiointipalveluun.", - "description2": "Ennen hakemuksen täyttämistä tutustu hakemisessa vaadittaviin tietoihin ja liitteisiin. Voit tallentaa hakemuksen keskeneräisenä luonnokseksi ja jatkaa sen täyttämistä myöhemmin.", - "linkText": " Tutustu vaadittaviin tietoihin ja tarvittaviin liitteisiin ennen hakemuksen täyttämistä.", - "newApplicationBtnText": "Tee uusi hakemus" + "frontPage": { + "heading": "Hakemukset", + "description1": "Tervetuloa Helsinki-lisän asiointipalveluun.", + "description2": "Ennen hakemuksen täyttämistä tutustu hakemisessa vaadittaviin tietoihin ja liitteisiin. Voit tallentaa hakemuksen keskeneräisenä luonnokseksi ja jatkaa sen täyttämistä myöhemmin.", + "linkText": " Tutustu vaadittaviin tietoihin ja tarvittaviin liitteisiin ennen hakemuksen täyttämistä.", + "newApplicationBtnText": "Tee uusi hakemus" + }, + "decisions": { + "heading": "Arkisto", + "description": "Tarkastele Helsinki-lisä -hakemuksia, joille on tehty päätös." + } }, "prerequisiteReminder": { "heading": "Muistitko nämä ennen hakulomakkeen täyttämistä?", @@ -628,6 +638,7 @@ "pageTitles": { "login": "Helsinki-lisä - Kirjautuminen", "home": "Helsinki-lisä - Etusivu", + "decisions": "Helsinki-lisä - Arkisto", "createApplication": "Helsinki-lisä - Hakemus - Luo uusi", "editApplication": "Helsinki-lisä - Hakemus - Muokkaa hakemusta", "viewApplication": "Helsinki-lisä - Hakemus - Tarkastele hakemusta", @@ -732,5 +743,8 @@ "title": "Sivun palautenappeja ei voida näyttää", "text": "Toiminnon käyttämiseksi vaaditaan, että hyväksyt sivuston evästeet. Pääsen antamaan palautetta tästä sivusta sallimalla evästeasetuksista tilastointiin liittyvät evästeet.", "button": "Muokkaa evästeasetuksia" + }, + "decisions": { + "heading": "Arkisto" } } diff --git a/frontend/benefit/applicant/public/locales/sv/common.json b/frontend/benefit/applicant/public/locales/sv/common.json index 604125f3aa..b787048473 100644 --- a/frontend/benefit/applicant/public/locales/sv/common.json +++ b/frontend/benefit/applicant/public/locales/sv/common.json @@ -423,7 +423,11 @@ "title": "Meddelanden om ansökan" }, "languageMenuButtonAriaLabel": "Ändra språk", - "menuToggleAriaLabel": "Menu" + "menuToggleAriaLabel": "Menu", + "navigation": { + "home": "Ansökningar", + "decisions": "Arkiv" + } }, "footer": { "copyrightText": "Copyright", @@ -459,11 +463,17 @@ "en": "In English" }, "mainIngress": { - "heading": "Ansökningar", - "description1": "Välkommen till e-tjänsten för Helsingforstillägg.", - "description2": "Innan du fyller i ansökan, bekanta dig med den information och de bilagor som krävs för att ansöka. Du kan spara en halvfärdig ansökan och komplettera den senare.", - "linkText": " Se vilka uppgifter och bilagor som krävs innan du fyller i ansökan.", - "newApplicationBtnText": "Gör en ny ansökan" + "frontPage": { + "heading": "Ansökningar", + "description1": "Välkommen till e-tjänsten för Helsingforstillägg.", + "description2": "Innan du fyller i ansökan, bekanta dig med den information och de bilagor som krävs för att ansöka. Du kan spara en halvfärdig ansökan och komplettera den senare.", + "linkText": " Se vilka uppgifter och bilagor som krävs innan du fyller i ansökan.", + "newApplicationBtnText": "Gör en ny ansökan" + }, + "decisions": { + "heading": "Arkiv", + "description": "Se Helsingforstillägget-ansökningarna, för vilka beslut har fattats." + } }, "prerequisiteReminder": { "heading": "Kom du ihåg dessa innan du fyllde i ansökan om Helsingforstillägget?", @@ -628,6 +638,7 @@ "pageTitles": { "login": "Helsingforstillägg - Logga in", "home": "Helsingforstillägg - Framsida", + "decisions": "Helsingforstillägg - Arkiv", "createApplication": "Helsingforstillägg - Ansökan - Skapa", "editApplication": "Helsingforstillägg - Ansökan - Redigera", "viewApplication": "Helsingforstillägg - Ansökan - Granska", @@ -732,5 +743,8 @@ "title": "Sivun palautenappeja ei voida näyttää", "text": "Toiminnon käyttämiseksi vaaditaan, että hyväksyt sivuston evästeet. Pääsen antamaan palautetta tästä sivusta sallimalla evästeasetuksista tilastointiin liittyvät evästeet.", "button": "Muokkaa evästeasetuksia" + }, + "decisions": { + "heading": "Arkiv" } } diff --git a/frontend/benefit/applicant/src/components/header/Header.tsx b/frontend/benefit/applicant/src/components/header/Header.tsx index 2537723a70..78a21cfb23 100644 --- a/frontend/benefit/applicant/src/components/header/Header.tsx +++ b/frontend/benefit/applicant/src/components/header/Header.tsx @@ -23,6 +23,8 @@ const Header: React.FC = () => { handleLanguageChange, setMessagesDrawerVisiblity, canWriteNewMessages, + navigationItems, + isNavigationVisible, } = useHeader(); const router = useRouter(); const { asPath } = router; @@ -79,6 +81,8 @@ const Header: React.FC = () => { ] : undefined } + navigationItems={navigationItems} + isNavigationVisible={isNavigationVisible} /> {isAuthenticated && hasMessenger && ( []; - navigationItems?: NavigationItem[]; + navigationItems: NavigationItem[]; + isNavigationVisible: boolean; hasMessenger: boolean; handleLanguageChange: ( e: React.SyntheticEvent, @@ -31,6 +34,7 @@ const useHeader = (): ExtendedComponentProps => { const id = router?.query?.id?.toString() ?? ''; const openDrawer = Boolean(router?.query?.openDrawer); const { axios } = useBackendAPI(); + const { isNavigationVisible } = React.useContext(AppContext); const [hasMessenger, setHasMessenger] = useState(false); const [unreadMessagesCount, setUnredMessagesCount] = useState< @@ -96,6 +100,20 @@ const useHeader = (): ExtendedComponentProps => { void router.push(url); }; + const navigationItems = useMemo>( + () => [ + { + label: t('common:header.navigation.home'), + url: ROUTES.HOME, + }, + { + label: t('common:header.navigation.decisions'), + url: ROUTES.DECISIONS, + }, + ], + [t] + ); + return { t, handleLanguageChange, @@ -106,6 +124,8 @@ const useHeader = (): ExtendedComponentProps => { unreadMessagesCount, isMessagesDrawerVisible, canWriteNewMessages, + navigationItems, + isNavigationVisible, }; }; diff --git a/frontend/benefit/applicant/src/components/mainIngress/MainIngress.sc.ts b/frontend/benefit/applicant/src/components/mainIngress/MainIngress.sc.ts index 49fe1a5ca3..2f47113940 100644 --- a/frontend/benefit/applicant/src/components/mainIngress/MainIngress.sc.ts +++ b/frontend/benefit/applicant/src/components/mainIngress/MainIngress.sc.ts @@ -32,16 +32,6 @@ export const $Link = styled.span` cursor: pointer; `; -export const $ActionContainer = styled.div` - display: flex; - align-items: center; - flex: 1 0 30%; - box-sizing: border-box; - ${respondAbove('sm')` - justify-content: flex-end; - `} -`; - export const $Notification = styled(NotificationBase)` margin-bottom: ${(props) => props.theme.spacing.xs}; `; diff --git a/frontend/benefit/applicant/src/components/mainIngress/MainIngress.tsx b/frontend/benefit/applicant/src/components/mainIngress/MainIngress.tsx index 5a44c7ee69..b60f30f59e 100644 --- a/frontend/benefit/applicant/src/components/mainIngress/MainIngress.tsx +++ b/frontend/benefit/applicant/src/components/mainIngress/MainIngress.tsx @@ -1,10 +1,9 @@ import { $Notification } from 'benefit/applicant/components/Notification/Notification.sc'; -import { Button, IconPlus } from 'hds-react'; import * as React from 'react'; +import { PropsWithChildren, ReactNode } from 'react'; import Container from 'shared/components/container/Container'; import { - $ActionContainer, $Container, $Description, $Heading, @@ -14,8 +13,17 @@ import { } from './MainIngress.sc'; import { useMainIngress } from './useMainIngress'; -const MainIngress: React.FC = () => { - const { errors, handleNewApplicationClick, t } = useMainIngress(); +type Props = { + heading: string; + description?: ReactNode; +}; + +const MainIngress: React.FC> = ({ + heading, + description, + children, +}) => { + const { errors } = useMainIngress(); const notificationItems = errors?.map(({ message, name }, i) => ( // eslint-disable-next-line react/no-array-index-key @@ -28,29 +36,11 @@ const MainIngress: React.FC = () => {
<$Container> - <$Heading>{t('common:mainIngress.heading')} + <$Heading>{heading} {notificationItems} <$TextContainer> - <$Description> - {t('common:mainIngress.description1')}{' '} - {/* TODO: uncomment once having link to redirect to more info url - or remove if this won't be used. - handleMoreInfoClick is from useMainIngress */} - {/* <$Link onClick={handleMoreInfoClick}> - {t('common:mainIngress.linkText')} - */} - {t('common:mainIngress.description2')} - - <$ActionContainer> - - + <$Description>{description} + {children} diff --git a/frontend/benefit/applicant/src/components/mainIngress/decisions/DecisionsMainIngress.tsx b/frontend/benefit/applicant/src/components/mainIngress/decisions/DecisionsMainIngress.tsx new file mode 100644 index 0000000000..68edfdfe4a --- /dev/null +++ b/frontend/benefit/applicant/src/components/mainIngress/decisions/DecisionsMainIngress.tsx @@ -0,0 +1,15 @@ +import MainIngress from 'benefit/applicant/components/mainIngress/MainIngress'; +import { useTranslation } from 'benefit/applicant/i18n'; +import * as React from 'react'; + +const DecisionsMainIngress: React.FC = () => { + const { t } = useTranslation(); + return ( + {t('common:mainIngress.decisions.description')}} + /> + ); +}; + +export default DecisionsMainIngress; diff --git a/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.sc.ts b/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.sc.ts new file mode 100644 index 0000000000..2208d889de --- /dev/null +++ b/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.sc.ts @@ -0,0 +1,12 @@ +import { respondAbove } from 'shared/styles/mediaQueries'; +import styled from 'styled-components'; + +export const $ActionContainer = styled.div` + display: flex; + align-items: center; + flex: 1 0 30%; + box-sizing: border-box; + ${respondAbove('sm')` + justify-content: flex-end; + `} +`; diff --git a/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.tsx b/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.tsx new file mode 100644 index 0000000000..3ed0775a11 --- /dev/null +++ b/frontend/benefit/applicant/src/components/mainIngress/frontPage/FrontPageMainIngress.tsx @@ -0,0 +1,40 @@ +import { $ActionContainer } from 'benefit/applicant/components/mainIngress/frontPage/FrontPageMainIngress.sc'; +import { useFrontPageMainIngress } from 'benefit/applicant/components/mainIngress/frontPage/useFrontPageMainIngress'; +import MainIngress from 'benefit/applicant/components/mainIngress/MainIngress'; +import { Button, IconPlus } from 'hds-react'; +import React from 'react'; + +const FrontPageMainIngress: React.FC = () => { + const { t, handleNewApplicationClick } = useFrontPageMainIngress(); + + return ( + + {t('common:mainIngress.frontPage.description1')}{' '} + {/* TODO: uncomment once having link to redirect to more info url + or remove if this won't be used. + handleMoreInfoClick is from useMainIngress */} + {/* <$Link onClick={handleMoreInfoClick}> + {t('common:mainIngress.frontPage.linkText')} + */} + {t('common:mainIngress.frontPage.description2')} + + } + > + <$ActionContainer> + + + + ); +}; + +export default FrontPageMainIngress; diff --git a/frontend/benefit/applicant/src/components/mainIngress/frontPage/useFrontPageMainIngress.ts b/frontend/benefit/applicant/src/components/mainIngress/frontPage/useFrontPageMainIngress.ts new file mode 100644 index 0000000000..dab08d001e --- /dev/null +++ b/frontend/benefit/applicant/src/components/mainIngress/frontPage/useFrontPageMainIngress.ts @@ -0,0 +1,32 @@ +import { ROUTES } from 'benefit/applicant/constants'; +import { useTranslation } from 'benefit/applicant/i18n'; +import { useRouter } from 'next/router'; +import { TFunction } from 'next-i18next'; + +type ExtendedComponentProps = { + handleNewApplicationClick: () => void; + handleMoreInfoClick: () => void; + t: TFunction; +}; + +const useFrontPageMainIngress = (): ExtendedComponentProps => { + const { t } = useTranslation(); + const router = useRouter(); + + const handleMoreInfoClick = (): void => { + // todo: redirect to more info url + void router.push(ROUTES.HOME); + }; + + const handleNewApplicationClick = (): void => { + void router.push(ROUTES.APPLICATION_FORM); + }; + + return { + handleNewApplicationClick, + handleMoreInfoClick, + t, + }; +}; + +export { useFrontPageMainIngress }; diff --git a/frontend/benefit/applicant/src/components/mainIngress/useMainIngress.ts b/frontend/benefit/applicant/src/components/mainIngress/useMainIngress.ts index ae0906aea4..421afd0d1d 100644 --- a/frontend/benefit/applicant/src/components/mainIngress/useMainIngress.ts +++ b/frontend/benefit/applicant/src/components/mainIngress/useMainIngress.ts @@ -1,35 +1,14 @@ -import { ROUTES } from 'benefit/applicant/constants'; import FrontPageContext from 'benefit/applicant/context/FrontPageContext'; -import { useTranslation } from 'benefit/applicant/i18n'; -import { useRouter } from 'next/router'; -import { TFunction } from 'next-i18next'; import React from 'react'; type ExtendedComponentProps = { - handleNewApplicationClick: () => void; - handleMoreInfoClick: () => void; - t: TFunction; errors: Error[]; }; const useMainIngress = (): ExtendedComponentProps => { - const { t } = useTranslation(); - const router = useRouter(); const { errors } = React.useContext(FrontPageContext); - const handleMoreInfoClick = (): void => { - // todo: redirect to more info url - void router.push(ROUTES.HOME); - }; - - const handleNewApplicationClick = (): void => { - void router.push(ROUTES.APPLICATION_FORM); - }; - return { - handleNewApplicationClick, - handleMoreInfoClick, - t, errors, }; }; diff --git a/frontend/benefit/applicant/src/constants.ts b/frontend/benefit/applicant/src/constants.ts index c09d8d7299..e76fd7e060 100644 --- a/frontend/benefit/applicant/src/constants.ts +++ b/frontend/benefit/applicant/src/constants.ts @@ -15,6 +15,7 @@ export enum ROUTES { TERMS_OF_SERVICE = '/terms-of-service', ACCESSIBILITY_STATEMENT = '/accessibility-statement', COOKIE_SETTINGS = '/cookie-settings', + DECISIONS = '/decisions', } export const MAX_DEMINIMIS_AID_TOTAL_AMOUNT = 200_000; diff --git a/frontend/benefit/applicant/src/context/AppContext.tsx b/frontend/benefit/applicant/src/context/AppContext.tsx new file mode 100644 index 0000000000..6cff5c58c7 --- /dev/null +++ b/frontend/benefit/applicant/src/context/AppContext.tsx @@ -0,0 +1,14 @@ +import noop from 'lodash/noop'; +import React from 'react'; + +export type AppContextType = { + isNavigationVisible: boolean; + setIsNavigationVisible: (value: boolean) => void; +}; + +const AppContext = React.createContext({ + isNavigationVisible: false, + setIsNavigationVisible: noop, +}); + +export default AppContext; diff --git a/frontend/benefit/applicant/src/context/AppContextProvider.tsx b/frontend/benefit/applicant/src/context/AppContextProvider.tsx new file mode 100644 index 0000000000..7445d84d11 --- /dev/null +++ b/frontend/benefit/applicant/src/context/AppContextProvider.tsx @@ -0,0 +1,23 @@ +import React from 'react'; + +import AppContext from './AppContext'; + +const AppContextProvider = ({ + children, +}: React.PropsWithChildren

): JSX.Element => { + const [isNavigationVisible, setIsNavigationVisible] = + React.useState(false); + + return ( + + {children} + + ); +}; + +export default AppContextProvider; diff --git a/frontend/benefit/applicant/src/pages/_app.tsx b/frontend/benefit/applicant/src/pages/_app.tsx index 208767e489..e7c9b41471 100644 --- a/frontend/benefit/applicant/src/pages/_app.tsx +++ b/frontend/benefit/applicant/src/pages/_app.tsx @@ -6,6 +6,7 @@ import 'hds-design-tokens'; import AuthProvider from 'benefit/applicant/auth/AuthProvider'; import CookieConsent from 'benefit/applicant/components/cookieConsent/CookieConsent'; import Layout from 'benefit/applicant/components/layout/Layout'; +import AppContextProvider from 'benefit/applicant/context/AppContextProvider'; import useLocale from 'benefit/applicant/hooks/useLocale'; import { appWithTranslation } from 'benefit/applicant/i18n'; import { @@ -44,6 +45,10 @@ const App: React.FC = (appProps) => { document.title = t('common:pageTitles.home'); break; + case ROUTES.DECISIONS: + document.title = t('common:pageTitles.decisions'); + break; + case ROUTES.LOGIN: document.title = t('common:pageTitles.login'); break; @@ -68,16 +73,18 @@ const App: React.FC = (appProps) => { headers={getHeaders(locale)} isLocalStorageCsrf > - - - {showCookieBanner && } - - - + + + + {showCookieBanner && } + + + + ); }; diff --git a/frontend/benefit/applicant/src/pages/decisions.tsx b/frontend/benefit/applicant/src/pages/decisions.tsx new file mode 100644 index 0000000000..b0343c22c5 --- /dev/null +++ b/frontend/benefit/applicant/src/pages/decisions.tsx @@ -0,0 +1,40 @@ +import DecisionsMainIngress from 'benefit/applicant/components/mainIngress/decisions/DecisionsMainIngress'; +import AppContext from 'benefit/applicant/context/AppContext'; +import { useTranslation } from 'benefit/applicant/i18n'; +import { GetStaticProps, NextPage } from 'next'; +import Head from 'next/head'; +import * as React from 'react'; +import { useEffect } from 'react'; +import Container from 'shared/components/container/Container'; +import withAuth from 'shared/components/hocs/withAuth'; +import getServerSideTranslations from 'shared/i18n/get-server-side-translations'; + +const ApplicantDecisions: NextPage = () => { + const { t } = useTranslation(); + const { setIsNavigationVisible } = React.useContext(AppContext); + + useEffect(() => { + setIsNavigationVisible(true); + + return () => { + setIsNavigationVisible(false); + }; + }, [setIsNavigationVisible]); + + return ( + <> + + {t('common:pageTitles.decisions')} + + + +

{t('common:decisions.heading')} (0)

+ + + ); +}; + +export const getStaticProps: GetStaticProps = + getServerSideTranslations('common'); + +export default withAuth(ApplicantDecisions); diff --git a/frontend/benefit/applicant/src/pages/index.tsx b/frontend/benefit/applicant/src/pages/index.tsx index 8d7ae86b9d..c0916c5eb5 100644 --- a/frontend/benefit/applicant/src/pages/index.tsx +++ b/frontend/benefit/applicant/src/pages/index.tsx @@ -1,10 +1,12 @@ import ApplicationsList from 'benefit/applicant/components/applications/applicationList/ApplicationList'; -import MainIngress from 'benefit/applicant/components/mainIngress/MainIngress'; +import FrontPageMainIngress from 'benefit/applicant/components/mainIngress/frontPage/FrontPageMainIngress'; import PrerequisiteReminder from 'benefit/applicant/components/prerequisiteReminder/PrerequisiteReminder'; +import AppContext from 'benefit/applicant/context/AppContext'; import { useTranslation } from 'benefit/applicant/i18n'; import { GetStaticProps, NextPage } from 'next'; import Head from 'next/head'; import * as React from 'react'; +import { useEffect } from 'react'; import withAuth from 'shared/components/hocs/withAuth'; import getServerSideTranslations from 'shared/i18n/get-server-side-translations'; @@ -13,6 +15,15 @@ import FrontPageProvider from '../context/FrontPageProvider'; const ApplicantIndex: NextPage = () => { const { t } = useTranslation(); + const { setIsNavigationVisible } = React.useContext(AppContext); + + useEffect(() => { + setIsNavigationVisible(true); + + return () => { + setIsNavigationVisible(false); + }; + }, [setIsNavigationVisible]); return ( <> @@ -20,7 +31,7 @@ const ApplicantIndex: NextPage = () => { {t('common:appName')} - +