619 lines
18 KiB
JavaScript
619 lines
18 KiB
JavaScript
import React from "react";
|
|
|
|
export const createSimpleRouteRenderers = ({
|
|
t,
|
|
renderTextCrumb,
|
|
renderMyPortalSectionCrumbs
|
|
}) => ({
|
|
"/myportal": () => renderTextCrumb(t("myportal:page-title")),
|
|
"/searchresults": () =>
|
|
renderTextCrumb(t("common:breadcrumb-search-results")),
|
|
"/advancedsearch": () =>
|
|
renderTextCrumb(t("common:breadcrumb-advanced-search")),
|
|
"/addresssearch": () =>
|
|
renderTextCrumb(t("common:breadcrumb-address-search")),
|
|
"/contactus": () =>
|
|
renderTextCrumb(t("common:footer-contact-us-link-label")),
|
|
"/viewall": () =>
|
|
renderMyPortalSectionCrumbs(t("common:breadcrumb-your-cases")),
|
|
"/myportal/dnsapplications": () =>
|
|
renderMyPortalSectionCrumbs(t("dnsCommon:service-name")),
|
|
"/dnsapplications": () => renderTextCrumb(t("dnsCommon:service-name"))
|
|
});
|
|
|
|
export const createSimpleLinkTextPairRenderers = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
renderLinkCrumb,
|
|
renderTextCrumb
|
|
}) => ({
|
|
"/addresssearchresults": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/chwiliadcyfeiriadau`
|
|
: "/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderTextCrumb(t("common:breadcrumb-address-search-results"))}
|
|
</>
|
|
),
|
|
"/advancedsearchresults": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/advancedsearch`
|
|
: "/advancedsearch",
|
|
t("common:breadcrumb-advanced-search")
|
|
)}
|
|
{renderTextCrumb(t("common:breadcrumb-advanced-search-results"))}
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createSimpleMyPortalRouteRenderers = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
myPortalHref,
|
|
currentViewState,
|
|
getViewAllLabel,
|
|
renderAnchorCrumb,
|
|
renderLinkCrumb,
|
|
renderTextCrumb,
|
|
renderMyPortalCrumb,
|
|
renderMyPortalSectionCrumbs
|
|
}) => ({
|
|
"/myportal/searchresults": () => (
|
|
<>
|
|
{renderAnchorCrumb(myPortalHref, t("common:breadcrumb-my-portal"))}
|
|
{renderTextCrumb(t("common:breadcrumb-search-results"))}
|
|
</>
|
|
),
|
|
"/myportal/addresssearch": () =>
|
|
renderMyPortalSectionCrumbs(t("common:breadcrumb-address-search")),
|
|
"/myportal/advancedsearch": () =>
|
|
renderMyPortalSectionCrumbs(t("common:breadcrumb-advanced-search")),
|
|
"/myportal/contactus": () =>
|
|
renderMyPortalSectionCrumbs(t("common:footer-contact-us-link-label")),
|
|
"/myportal/viewall": () =>
|
|
renderMyPortalSectionCrumbs(
|
|
getViewAllLabel(currentViewState.viewKey || router.query.key)
|
|
),
|
|
"/myportal/advancedsearchresults": () => (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/myportal/advancedsearch`
|
|
: "/myportal/advancedsearch",
|
|
t("common:breadcrumb-advanced-search")
|
|
)}
|
|
{renderTextCrumb(t("common:breadcrumb-advanced-search-results"))}
|
|
</>
|
|
),
|
|
"/myportal/addresssearchresults": () => (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/fymhorth/chwiliadcyfeiriadau`
|
|
: "/myportal/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderTextCrumb(t("common:breadcrumb-address-search-results"))}
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createNewAppealRouteRenderers = ({
|
|
t,
|
|
myPortalHref,
|
|
renderLinkCrumb,
|
|
renderTextCrumb
|
|
}) => ({
|
|
"/newappeal/selectappeal": () => (
|
|
<>
|
|
{renderLinkCrumb(myPortalHref, t("newappeal:parent-page-title"))}
|
|
{renderLinkCrumb(myPortalHref, t("newappeal:page-title"))}
|
|
{renderTextCrumb("Select Appeal")}
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createCallbackRouteRenderers = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
nestedSearchString,
|
|
currentReference,
|
|
renderMyPortalCrumb,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
onBack
|
|
}) => ({
|
|
"/myportal/case/id/[incident]": () => (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/fymhorth/chwiliadcyfeiriadau`
|
|
: "/myportal/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/fymhorth/canlyniadaucyfeiriadau?${nestedSearchString}`
|
|
: `/myportal/addresssearchresults?${nestedSearchString}`,
|
|
t("common:breadcrumb-address-search-results"),
|
|
onBack
|
|
)}
|
|
{renderCaseReferenceCrumb(currentReference)}
|
|
</>
|
|
),
|
|
|
|
"/case": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `${router.locale}/searchresults?q=${router.query.q}&page=${router.query.page}`
|
|
: `/searchresults?q=${router.query.q}&page=${router.query.page}`,
|
|
t("common:breadcrumb-search-results"),
|
|
onBack
|
|
)}
|
|
{renderCaseReferenceCrumb(currentReference)}
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createStepBackRouteRenderers = ({
|
|
t,
|
|
currentSection,
|
|
onStepBack,
|
|
onStepBackWithInlineClass,
|
|
renderLinkCrumb,
|
|
renderBackCrumb
|
|
}) => ({
|
|
"/newappeal/[appealtypes]": () => {
|
|
if (currentSection <= 1) {
|
|
return null;
|
|
}
|
|
|
|
if (currentSection === 9999) {
|
|
return renderLinkCrumb("/", t("common:service-name-breadcrumb"));
|
|
}
|
|
|
|
return renderBackCrumb(
|
|
onStepBackWithInlineClass,
|
|
"govuk-breadcrumbs__link-item"
|
|
);
|
|
},
|
|
|
|
"/myportal/[appealtypes]": () => {
|
|
if (currentSection <= 1) {
|
|
return null;
|
|
}
|
|
|
|
if (currentSection === 9999) {
|
|
return renderLinkCrumb("/", t("common:service-name-breadcrumb"));
|
|
}
|
|
|
|
return renderBackCrumb(onStepBack);
|
|
}
|
|
});
|
|
|
|
export const createRepresentationRouteRenderers = ({
|
|
currentView,
|
|
hasRepDetails,
|
|
repDetails,
|
|
showQuestionnaireSection,
|
|
onRepresentationSubmitBackFromConfirmation,
|
|
onRepresentationSubmitBackToDetails,
|
|
onRepresentationQuestionnaireBack,
|
|
renderBackCrumb
|
|
}) => ({
|
|
"/myportal/representation": () => (
|
|
<>
|
|
{currentView.representationSubmit === true &&
|
|
currentView.representationSubmitConfirmation !== true &&
|
|
renderBackCrumb(onRepresentationSubmitBackFromConfirmation)}
|
|
|
|
{currentView.representationSubmit !== true &&
|
|
hasRepDetails &&
|
|
repDetails?.representationType !== "Questionnaire" &&
|
|
renderBackCrumb(onRepresentationSubmitBackToDetails)}
|
|
|
|
{currentView.representationSubmit !== true &&
|
|
hasRepDetails &&
|
|
repDetails?.representationType === "Questionnaire" &&
|
|
showQuestionnaireSection > 1 &&
|
|
renderBackCrumb(onRepresentationQuestionnaireBack)}
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createCaseDetailRouteRenderers = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
currentReference,
|
|
nestedSearchString,
|
|
caseResultsHref,
|
|
breadcrumbLabel,
|
|
fallbackSearchTitle,
|
|
caseReferenceDisplay,
|
|
getViewAllLabel,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
renderMyPortalCrumb
|
|
}) => ({
|
|
"/myportal/case": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh ? `/${router.locale}/fymhorth` : "/myportal",
|
|
t("common:breadcrumb-my-portal")
|
|
)}
|
|
{renderCaseReferenceCrumb(currentReference)}
|
|
</>
|
|
),
|
|
|
|
"/case/id/[incident]": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/chwiliadcyfeiriadau`
|
|
: "/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/canlyniadaucyfeiriadau?${nestedSearchString}`
|
|
: `/addresssearchresults?${nestedSearchString}`,
|
|
t("common:breadcrumb-address-search-results")
|
|
)}
|
|
{renderCaseReferenceCrumb(currentReference)}
|
|
</>
|
|
),
|
|
|
|
"/case/[ticketnumber]": () => {
|
|
const { ads, adv, va, key } = router.query;
|
|
|
|
if (ads === "true") {
|
|
return (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/chwiliadcyfeiriadau`
|
|
: "/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
caseResultsHref,
|
|
t("common:breadcrumb-address-search-results")
|
|
)}
|
|
{renderCaseReferenceCrumb(fallbackSearchTitle)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
if (adv === "true") {
|
|
return (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/advancedsearch`
|
|
: "/advancedsearch",
|
|
t("common:breadcrumb-advanced-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
caseResultsHref,
|
|
t("common:breadcrumb-advanced-search-results")
|
|
)}
|
|
{renderCaseReferenceCrumb(fallbackSearchTitle)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
if (va === "true") {
|
|
return (
|
|
<>
|
|
{renderLinkCrumb("/myportal/viewall", getViewAllLabel(key))}
|
|
{renderCaseReferenceCrumb(fallbackSearchTitle)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<>
|
|
{renderLinkCrumb(caseResultsHref, breadcrumbLabel)}
|
|
{renderCaseReferenceCrumb(fallbackSearchTitle)}
|
|
</>
|
|
);
|
|
},
|
|
|
|
"/myportal/case/[ticketnumber]": () => {
|
|
const { ads, adv, va, key } = router.query;
|
|
|
|
if (ads === "true") {
|
|
return (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/fymhorth/chwiliadcyfeiriadau`
|
|
: "/myportal/addresssearch",
|
|
t("common:breadcrumb-address-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
caseResultsHref,
|
|
t("common:breadcrumb-address-search-results")
|
|
)}
|
|
{renderCaseReferenceCrumb(caseReferenceDisplay)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
if (adv === "true") {
|
|
return (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/myportal/advancedsearch`
|
|
: "/myportal/advancedsearch",
|
|
t("common:breadcrumb-advanced-search")
|
|
)}
|
|
{renderLinkCrumb(
|
|
caseResultsHref,
|
|
t("common:breadcrumb-advanced-search-results")
|
|
)}
|
|
{renderCaseReferenceCrumb(caseReferenceDisplay)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
if (va === "true") {
|
|
return (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb("/myportal/viewall", getViewAllLabel(key))}
|
|
{renderCaseReferenceCrumb(caseReferenceDisplay)}
|
|
</>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(caseResultsHref, breadcrumbLabel)}
|
|
{renderCaseReferenceCrumb(caseReferenceDisplay)}
|
|
</>
|
|
);
|
|
}
|
|
});
|
|
|
|
export const createDetailAndAccountRouteRenderers = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
cyMyPortalHref,
|
|
currentReference,
|
|
caseReferenceDisplay,
|
|
renderMyPortalCrumb,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
renderDnsCaseReferenceCrumbs
|
|
}) => ({
|
|
"/myportal/dnsdetails": () => (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
"/myportal/dnsapplications",
|
|
t("dnsCommon:service-name")
|
|
)}
|
|
{renderCaseReferenceCrumb(currentReference)}
|
|
</>
|
|
),
|
|
|
|
"/myportal/dns/[developmentName]": () => (
|
|
<>
|
|
{renderMyPortalCrumb()}
|
|
{renderLinkCrumb(
|
|
"/myportal/dnsapplications",
|
|
t("dnsCommon:service-name")
|
|
)}
|
|
{renderCaseReferenceCrumb(caseReferenceDisplay)}
|
|
</>
|
|
),
|
|
|
|
"/dnsdetails": () => renderDnsCaseReferenceCrumbs(currentReference),
|
|
|
|
"/dns/[developmentName]": () =>
|
|
renderDnsCaseReferenceCrumbs(caseReferenceDisplay),
|
|
|
|
"/dns/application-view": () => (
|
|
<>
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/dns/applications`
|
|
: "/dns/applications",
|
|
t("dnsApplicationView:page-parent-title")
|
|
)}
|
|
{renderLinkCrumb(
|
|
isWelsh
|
|
? `/${router.locale}/dnsapplications`
|
|
: "/dnsapplications",
|
|
t("dnsCommon:service-name")
|
|
)}
|
|
{renderCaseReferenceCrumb("TWA - Morlais Demonstration Zone")}
|
|
</>
|
|
),
|
|
|
|
"/account/personaldetails": () => (
|
|
<>
|
|
{renderLinkCrumb(cyMyPortalHref, t("common:breadcrumb-my-portal"))}
|
|
<li className="govuk-breadcrumbs__list-item">
|
|
{t("account:account-title")}
|
|
</li>
|
|
</>
|
|
),
|
|
|
|
"/account/changepassword": () => (
|
|
<>
|
|
{renderLinkCrumb(cyMyPortalHref, t("common:breadcrumb-my-portal"))}
|
|
<li className="govuk-breadcrumbs__list-item">
|
|
Update your password
|
|
</li>
|
|
</>
|
|
)
|
|
});
|
|
|
|
export const createMappedRouteRendererGroups = ({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
myPortalHref,
|
|
cyMyPortalHref,
|
|
currentViewState,
|
|
getViewAllLabel,
|
|
caseResultsHref,
|
|
breadcrumbLabel,
|
|
fallbackSearchTitle,
|
|
currentReference,
|
|
nestedSearchString,
|
|
caseReferenceDisplay,
|
|
onBack,
|
|
currentSection,
|
|
onStepBack,
|
|
onStepBackWithInlineClass,
|
|
currentView,
|
|
hasRepDetails,
|
|
repDetails,
|
|
showQuestionnaireSection,
|
|
onRepresentationSubmitBackFromConfirmation,
|
|
onRepresentationSubmitBackToDetails,
|
|
onRepresentationQuestionnaireBack,
|
|
renderAnchorCrumb,
|
|
renderLinkCrumb,
|
|
renderTextCrumb,
|
|
renderCaseReferenceCrumb,
|
|
renderMyPortalCrumb,
|
|
renderMyPortalSectionCrumbs,
|
|
renderDnsCaseReferenceCrumbs,
|
|
renderBackCrumb
|
|
}) => {
|
|
const simpleRouteRenderersByPath = createSimpleRouteRenderers({
|
|
t,
|
|
renderTextCrumb,
|
|
renderMyPortalSectionCrumbs
|
|
});
|
|
|
|
const simpleLinkTextPairRenderersByPath = createSimpleLinkTextPairRenderers(
|
|
{
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
renderLinkCrumb,
|
|
renderTextCrumb
|
|
}
|
|
);
|
|
|
|
const simpleMyPortalRouteRenderersByPath =
|
|
createSimpleMyPortalRouteRenderers({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
myPortalHref,
|
|
currentViewState,
|
|
getViewAllLabel,
|
|
renderAnchorCrumb,
|
|
renderLinkCrumb,
|
|
renderTextCrumb,
|
|
renderMyPortalCrumb,
|
|
renderMyPortalSectionCrumbs
|
|
});
|
|
|
|
const newAppealRouteRenderersByPath = createNewAppealRouteRenderers({
|
|
t,
|
|
myPortalHref,
|
|
renderLinkCrumb,
|
|
renderTextCrumb
|
|
});
|
|
|
|
const callbackRouteRenderersByPath = createCallbackRouteRenderers({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
nestedSearchString,
|
|
currentReference,
|
|
renderMyPortalCrumb,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
onBack
|
|
});
|
|
|
|
const stepBackRouteRenderersByPath = createStepBackRouteRenderers({
|
|
t,
|
|
currentSection,
|
|
onStepBack,
|
|
onStepBackWithInlineClass,
|
|
renderLinkCrumb,
|
|
renderBackCrumb
|
|
});
|
|
|
|
const representationRouteRenderersByPath =
|
|
createRepresentationRouteRenderers({
|
|
currentView,
|
|
hasRepDetails,
|
|
repDetails,
|
|
showQuestionnaireSection,
|
|
onRepresentationSubmitBackFromConfirmation,
|
|
onRepresentationSubmitBackToDetails,
|
|
onRepresentationQuestionnaireBack,
|
|
renderBackCrumb
|
|
});
|
|
|
|
const caseDetailRouteRenderersByPath = createCaseDetailRouteRenderers({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
currentReference,
|
|
nestedSearchString,
|
|
caseResultsHref,
|
|
breadcrumbLabel,
|
|
fallbackSearchTitle,
|
|
caseReferenceDisplay,
|
|
getViewAllLabel,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
renderMyPortalCrumb
|
|
});
|
|
|
|
const detailAndAccountRouteRenderersByPath =
|
|
createDetailAndAccountRouteRenderers({
|
|
t,
|
|
router,
|
|
isWelsh,
|
|
cyMyPortalHref,
|
|
currentReference,
|
|
caseReferenceDisplay,
|
|
renderMyPortalCrumb,
|
|
renderLinkCrumb,
|
|
renderCaseReferenceCrumb,
|
|
renderDnsCaseReferenceCrumbs
|
|
});
|
|
|
|
return {
|
|
simpleRouteRenderersByPath,
|
|
simpleLinkTextPairRenderersByPath,
|
|
simpleMyPortalRouteRenderersByPath,
|
|
newAppealRouteRenderersByPath,
|
|
callbackRouteRenderersByPath,
|
|
stepBackRouteRenderersByPath,
|
|
representationRouteRenderersByPath,
|
|
caseDetailRouteRenderersByPath,
|
|
detailAndAccountRouteRenderersByPath
|
|
};
|
|
};
|