Skip to content

Commit 2f27861

Browse files
VIA-299 SB Add Hib/MenC page.
Still need to add new warning callout component.
1 parent ddf098c commit 2f27861

File tree

6 files changed

+610
-65
lines changed

6 files changed

+610
-65
lines changed

e2e/constants.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ type VaccinePageName =
1212
| "shingles"
1313
| "menacwy"
1414
| "4-in-1"
15-
| "whooping-cough";
15+
| "whooping-cough"
16+
| "hib-menc";
1617
type FailurePageName = "sso-failure" | "service-failure" | "not-found";
1718
type SessionPageName = "session-timeout" | "session-logout";
1819
type IndexPageName = "vaccines-for-all-ages" | "vaccine-hub";
@@ -122,6 +123,12 @@ export const AppPageDetails: Record<PageName, PageDetails> = {
122123
title: `Whooping cough vaccination in pregnancy - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
123124
snapshotFilename: "default-whooping-cough.png",
124125
},
126+
"hib-menc": {
127+
url: "/vaccines/hib-menc-vaccine",
128+
heading: "Hib/MenC vaccine",
129+
title: `Hib/MenC vaccine - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
130+
snapshotFilename: "default-hib-menc.png",
131+
},
125132

126133
// failure pages
127134
"sso-failure": {

e2e/general/navigation.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ test.describe("Navigation", () => {
4040
{ section: AgeSectionTestId.CHILDREN, linkText: "MMR", pageName: "mmr" },
4141
{ section: AgeSectionTestId.CHILDREN, linkText: "MenB", pageName: "menb-children" },
4242
{ section: AgeSectionTestId.CHILDREN, linkText: "Pneumococcal", pageName: "pneumococcal" },
43+
{ section: AgeSectionTestId.CHILDREN, linkText: "Hib/MenC", pageName: "hib-menc" },
4344

4445
{ section: AgeSectionTestId.BABIES, linkText: "6-in-1", pageName: "6-in-1" },
4546
{ section: AgeSectionTestId.BABIES, linkText: "Rotavirus", pageName: "rotavirus" },

src/app/vaccines-for-all-ages/page.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ describe("VaccinesForAllAges", () => {
6767
"/vaccines/4-in-1-preschool-booster-vaccine",
6868
AgeSectionTestId.CHILDREN,
6969
);
70+
assertCardLinkIsPresentInSection("Hib/MenC", "/vaccines/hib-menc-vaccine", AgeSectionTestId.CHILDREN);
7071

7172
assertCardLinkIsPresentInSection("6-in-1", "/vaccines/6-in-1-vaccine", AgeSectionTestId.BABIES);
7273
assertCardLinkIsPresentInSection("Rotavirus", "/vaccines/rotavirus-vaccine", AgeSectionTestId.BABIES);

src/app/vaccines-for-all-ages/page.tsx

Lines changed: 48 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,25 @@ import { VaccineInfo, VaccineType } from "@src/models/vaccine";
66
import React, { JSX } from "react";
77

88
const VaccinesForAllAges = (): JSX.Element => {
9+
const adultVaccines: VaccineType[] = [VaccineType.RSV, VaccineType.SHINGLES, VaccineType.PNEUMOCOCCAL];
10+
const pregnancyVaccines: VaccineType[] = [VaccineType.WHOOPING_COUGH, VaccineType.RSV_PREGNANCY];
11+
const childVaccines: VaccineType[] = [
12+
VaccineType.TD_IPV_3_IN_1,
13+
VaccineType.MENACWY,
14+
VaccineType.HPV,
15+
VaccineType.VACCINE_4_IN_1,
16+
VaccineType.MMR,
17+
VaccineType.MENB_CHILDREN,
18+
VaccineType.PNEUMOCOCCAL,
19+
VaccineType.HIB_MENC,
20+
];
21+
const babyVaccines: VaccineType[] = [
22+
VaccineType.VACCINE_6_IN_1,
23+
VaccineType.ROTAVIRUS,
24+
VaccineType.PNEUMOCOCCAL,
25+
VaccineType.MENB_CHILDREN,
26+
];
27+
928
return (
1029
<>
1130
<title>{`${VACCINES_FOR_ALL_AGES_PAGE} - ${NHS_TITLE_SUFFIX}`}</title>
@@ -19,81 +38,46 @@ const VaccinesForAllAges = (): JSX.Element => {
1938

2039
<h2 className="nhsuk-heading-s">Vaccines for adults</h2>
2140
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid={"vaccine-cardlinks-adults"}>
22-
<CardLink
23-
title={`${VaccineInfo[VaccineType.RSV].cardLinkTitle}`}
24-
link={`/vaccines/${VaccineInfo.RSV.urlPath}`}
25-
/>
26-
<CardLink
27-
title={`${VaccineInfo[VaccineType.SHINGLES].cardLinkTitle}`}
28-
link={`/vaccines/${VaccineInfo.SHINGLES.urlPath}`}
29-
/>
30-
<CardLink
31-
title={`${VaccineInfo[VaccineType.PNEUMOCOCCAL].cardLinkTitle}`}
32-
link={`/vaccines/${VaccineInfo.PNEUMOCOCCAL.urlPath}`}
33-
/>
41+
{adultVaccines.map((type) => (
42+
<CardLink
43+
key={type}
44+
title={VaccineInfo[type].cardLinkTitle}
45+
link={`/vaccines/${VaccineInfo[type].urlPath}`}
46+
/>
47+
))}
3448
</ul>
3549

3650
<h2 className="nhsuk-heading-s">Vaccines for pregnancy</h2>
3751
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid="vaccine-cardlinks-pregnancy">
38-
<CardLink
39-
title={`${VaccineInfo[VaccineType.WHOOPING_COUGH].cardLinkTitle}`}
40-
link={`/vaccines/${VaccineInfo.WHOOPING_COUGH.urlPath}`}
41-
/>
42-
<CardLink
43-
title={`${VaccineInfo[VaccineType.RSV_PREGNANCY].cardLinkTitle}`}
44-
link={`/vaccines/${VaccineInfo.RSV_PREGNANCY.urlPath}`}
45-
/>
52+
{pregnancyVaccines.map((type) => (
53+
<CardLink
54+
key={type}
55+
title={VaccineInfo[type].cardLinkTitle}
56+
link={`/vaccines/${VaccineInfo[type].urlPath}`}
57+
/>
58+
))}
4659
</ul>
4760

4861
<h2 className="nhsuk-heading-s">Vaccines for children aged 1 to 15</h2>
4962
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid="vaccine-cardlinks-children">
50-
<CardLink
51-
title={`${VaccineInfo[VaccineType.TD_IPV_3_IN_1].cardLinkTitle}`}
52-
link={`/vaccines/${VaccineInfo.TD_IPV_3_IN_1.urlPath}`}
53-
/>
54-
<CardLink
55-
title={`${VaccineInfo[VaccineType.MENACWY].cardLinkTitle}`}
56-
link={`/vaccines/${VaccineInfo.MENACWY.urlPath}`}
57-
/>
58-
<CardLink
59-
title={`${VaccineInfo[VaccineType.HPV].cardLinkTitle}`}
60-
link={`/vaccines/${VaccineInfo.HPV.urlPath}`}
61-
/>
62-
<CardLink
63-
title={`${VaccineInfo[VaccineType.VACCINE_4_IN_1].cardLinkTitle}`}
64-
link={`/vaccines/${VaccineInfo.VACCINE_4_IN_1.urlPath}`}
65-
/>
66-
<CardLink
67-
title={`${VaccineInfo[VaccineType.MMR].cardLinkTitle}`}
68-
link={`/vaccines/${VaccineInfo.MMR.urlPath}`}
69-
/>
70-
<CardLink
71-
title={`${VaccineInfo[VaccineType.MENB_CHILDREN].cardLinkTitle}`}
72-
link={`/vaccines/${VaccineInfo.MENB_CHILDREN.urlPath}`}
73-
/>
74-
<CardLink
75-
title={`${VaccineInfo[VaccineType.PNEUMOCOCCAL].cardLinkTitle}`}
76-
link={`/vaccines/${VaccineInfo.PNEUMOCOCCAL.urlPath}`}
77-
/>
63+
{childVaccines.map((type) => (
64+
<CardLink
65+
key={type}
66+
title={VaccineInfo[type].cardLinkTitle}
67+
link={`/vaccines/${VaccineInfo[type].urlPath}`}
68+
/>
69+
))}
7870
</ul>
71+
7972
<h2 className="nhsuk-heading-s">Vaccines for babies under 1 year old</h2>
8073
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid={"vaccine-cardlinks-babies"}>
81-
<CardLink
82-
title={`${VaccineInfo[VaccineType.VACCINE_6_IN_1].cardLinkTitle}`}
83-
link={`/vaccines/${VaccineInfo.VACCINE_6_IN_1.urlPath}`}
84-
/>
85-
<CardLink
86-
title={`${VaccineInfo[VaccineType.ROTAVIRUS].cardLinkTitle}`}
87-
link={`/vaccines/${VaccineInfo.ROTAVIRUS.urlPath}`}
88-
/>
89-
<CardLink
90-
title={`${VaccineInfo[VaccineType.PNEUMOCOCCAL].cardLinkTitle}`}
91-
link={`/vaccines/${VaccineInfo.PNEUMOCOCCAL.urlPath}`}
92-
/>
93-
<CardLink
94-
title={`${VaccineInfo[VaccineType.MENB_CHILDREN].cardLinkTitle}`}
95-
link={`/vaccines/${VaccineInfo.MENB_CHILDREN.urlPath}`}
96-
/>
74+
{babyVaccines.map((type) => (
75+
<CardLink
76+
key={type}
77+
title={VaccineInfo[type].cardLinkTitle}
78+
link={`/vaccines/${VaccineInfo[type].urlPath}`}
79+
/>
80+
))}
9781
</ul>
9882
</MainContent>
9983
</>

src/models/vaccine.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ enum VaccineType {
1818
MENACWY = "MENACWY",
1919
VACCINE_4_IN_1 = "VACCINE_4_IN_1",
2020
WHOOPING_COUGH = "WHOOPING_COUGH",
21+
HIB_MENC = "HIB_MENC",
2122
}
2223

2324
export type VaccineDetails = {
@@ -258,6 +259,22 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
258259
cacheFilename: "whooping-cough-vaccination.json" as Filename,
259260
nboPath: "whooping-cough-vaccination" as UrlPathFragment,
260261
},
262+
[VaccineType.HIB_MENC]: {
263+
urlPath: "hib-menc-vaccine" as UrlPathFragment,
264+
displayName: {
265+
titleCase: "Hib/MenC vaccine",
266+
midSentenceCase: "Hib/MenC vaccine",
267+
indefiniteArticle: "a",
268+
},
269+
heading: "Hib/MenC vaccine",
270+
cardLinkTitle: "Hib/MenC",
271+
nhsWebpageLink: new URL("https://www.nhs.uk/vaccinations/hib-menc-vaccine/"),
272+
nhsHowToGetWebpageLink: new URL("https://www.nhs.uk/vaccinations/hib-menc-vaccine/#how-to-get-it"),
273+
personalisedEligibilityStatusRequired: false,
274+
contentPath: "vaccinations/hib-menc-vaccine" as UrlPathFragment,
275+
cacheFilename: "hib-menc-vaccine.json" as Filename,
276+
nboPath: "hib-menc-vaccine" as UrlPathFragment,
277+
},
261278
};
262279

263280
const vaccineUrlPathToVaccineType = new Map<UrlPathFragment, VaccineType>();

0 commit comments

Comments
 (0)