Files
pedwfrontend/lib/routing/breadcrumbRendererFactories.js
T

315 lines
9.6 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 createCaseDetailRouteRenderers = ({
t,
router,
isWelsh,
caseResultsHref,
breadcrumbLabel,
fallbackSearchTitle,
caseReferenceDisplay,
getViewAllLabel,
renderLinkCrumb,
renderCaseReferenceCrumb,
renderMyPortalCrumb
}) => ({
"/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>
</>
)
});