22541 extract shared anchor/back breadcrumb helper patterns

This commit is contained in:
2026-04-09 09:45:00 +01:00
parent 30bc729c70
commit e3e893ed58
2 changed files with 96 additions and 84 deletions
+68 -84
View File
@@ -122,6 +122,23 @@ const Breadcrumbs = (props) => {
</li>
);
const renderAnchorCrumb = (
href,
label,
onClick,
listItemClass = "govuk-breadcrumbs__list-item"
) => (
<li className={listItemClass}>
<a
className="govuk-breadcrumbs__link"
href={href}
onClick={onClick}
>
{label}
</a>
</li>
);
const { breadcrumbHref, caseResultsHref, breadcrumbLabel } =
resolveCaseBreadcrumbState({
query: router.query,
@@ -153,14 +170,10 @@ const Breadcrumbs = (props) => {
)}
{isPath("/myportal/searchresults") && (
<>
<li className="govuk-breadcrumbs__list-item">
<a
href={myPortalHref}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</a>
</li>
{renderAnchorCrumb(
myPortalHref,
t("common:breadcrumb-my-portal")
)}
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-search-results")}
</li>
@@ -301,20 +314,16 @@ const Breadcrumbs = (props) => {
</Link>
</li>
) : (
<li className="govuk-breadcrumbs__link-item">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() =>
setCurrentSection(
appealType.currentSection -
1
)
}
>
{t("common:back-link")}
</a>
</li>
renderAnchorCrumb(
"#",
t("common:back-link"),
() =>
setCurrentSection(
appealType.currentSection -
1
),
"govuk-breadcrumbs__link-item"
)
))}
</>
)}
@@ -333,22 +342,16 @@ const Breadcrumbs = (props) => {
</Link>
</li>
) : (
<>
<li className="govuk-breadcrumbs__list-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() =>
setCurrentSection(
appealType.currentSection -
1
)
}
>
{t("common:back-link")}
</a>
</li>
</>
renderAnchorCrumb(
"#",
t("common:back-link"),
() =>
setCurrentSection(
appealType.currentSection -
1
),
"govuk-breadcrumbs__list-item backChevron"
)
))}
</>
)}
@@ -536,61 +539,42 @@ const Breadcrumbs = (props) => {
<>
{currentView.representationSubmit === true &&
currentView.representationSubmitConfirmation !==
true && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setRepresentationSubmit(
qcount
);
}}
>
{t("common:back-link")}
</a>
</li>
true &&
renderAnchorCrumb(
"#",
t("common:back-link"),
() => {
setRepresentationSubmit(qcount);
},
"govuk-breadcrumbs__link-item backChevron"
)}
{currentView.representationSubmit !== true &&
hasRepDetails &&
repDetails?.representationType !==
"Questionnaire" && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setRepresentationSubmit(
false
);
}}
>
{t("common:back-link")}
</a>
</li>
"Questionnaire" &&
renderAnchorCrumb(
"#",
t("common:back-link"),
() => {
setRepresentationSubmit(false);
},
"govuk-breadcrumbs__link-item backChevron"
)}
{currentView.representationSubmit !== true &&
hasRepDetails &&
repDetails?.representationType ===
"Questionnaire" &&
showQuestionnaireSection > 1 && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setShowQuestionnaireSection(
showQuestionnaireSection -
1
);
setRepresentationSubmit(
false
);
}}
>
{t("common:back-link")}
</a>
</li>
showQuestionnaireSection > 1 &&
renderAnchorCrumb(
"#",
t("common:back-link"),
() => {
setShowQuestionnaireSection(
showQuestionnaireSection - 1
);
setRepresentationSubmit(false);
},
"govuk-breadcrumbs__link-item backChevron"
)}
</>
)}