Files
pedwfrontend/components/breadcrumbs.js
T
2024-10-01 13:51:36 +01:00

1051 lines
55 KiB
JavaScript

import { JSONPath as jsonpath } from "jsonpath-plus";
import _ from "lodash";
import useTranslation from "next-translate/useTranslation";
import Link from "next/link";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { useSession } from "next-auth/react";
import { setCurrentView } from "../store/currentView/action";
import { Field, change, reduxForm } from "redux-form";
import { setCurrentSection } from "../store/appealType/action";
import {
setRepresentationCapacity,
setRepresentationSubmit,
} from "../store/currentView/action";
const Breadcrumbs = (props) => {
const {
currentView,
setCurrentView,
setCurrentSection,
setRepresentationCapacity,
} = props;
const router = useRouter();
let { t } = useTranslation();
const { data: session, status } = useSession();
return (
<>
<nav
aria-label={"Breadcrumb for PEDW"}
role="navigation"
data-module="track-click"
>
<div className="govuk-breadcrumbs ">
<ol className="govuk-breadcrumbs__list">
{router.pathname != "/myportal/[appealtypes]" &&
router.pathname != "/newappeal" &&
router.pathname != "/newappeal/[appealtypes]" &&
router.pathname != "/myportal/representation" && (
<li className="govuk-breadcrumbs__list-item">
<Link
href={"/"}
className="govuk-breadcrumbs__link"
>
{t("common:service-name-breadcrumb")}
</Link>
</li>
)}
{router.pathname == "/myportal" && (
<li className="govuk-breadcrumbs__list-item">
{t("myportal:page-title")}
</li>
)}
{router.pathname == "/myportal/searchresults" && (
<>
<li className="govuk-breadcrumbs__list-item">
<a
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</a>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-search-results")}
</li>
</>
)}
{router.pathname == "/searchresults" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-search-results")}
</li>
</>
)}
{router.pathname == "/advancedsearch" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-advanced-search")}
</li>
</>
)}
{router.pathname == "/addresssearch" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-address-search")}
</li>
</>
)}
{router.pathname == "/myportal/addresssearch" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-address-search")}
</li>
</>
)}
{router.pathname == "/myportal/advancedsearch" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-advanced-search")}
</li>
</>
)}
{router.pathname == "/addresssearchresults" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/chwiliadcyfeiriadau"
: "/addresssearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-address-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t(
"common:breadcrumb-address-search-results"
)}
</li>
</>
)}
{router.pathname == "/advancedsearchresults" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/advancedsearch"
: "/advancedsearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-advanced-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t(
"common:breadcrumb-advanced-search-results"
)}
</li>
</>
)}
{router.pathname ==
"/myportal/advancedsearchresults" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/myportal/advancedsearch"
: "/myportal/advancedsearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-advanced-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t(
"common:breadcrumb-advanced-search-results"
)}
</li>
</>
)}
{router.pathname ==
"/myportal/addresssearchresults" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth/chwiliadcyfeiriadau"
: "/myportal/addresssearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-address-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t(
"common:breadcrumb-address-search-results"
)}
</li>
</>
)}
{router.pathname == "/newappeal" && (
<>
{/* <li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("newappeal:parent-page-title")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("newappeal:page-title")}
</li> */}
</>
)}
{router.pathname == "/newappeal/[appealtypes]" && (
<>
{/* <li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("newappeal:parent-page-title")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("newappeal:page-title")}
</li> */}
{props.appealType.currentSection > 1 &&
(props.appealType.currentSection == 9999 ? (
<li className="govuk-breadcrumbs__list-item">
<Link
href={"/"}
className="govuk-breadcrumbs__link"
>
{t(
"common:service-name-breadcrumb"
)}
</Link>
</li>
) : (
<li className="govuk-breadcrumbs__link-item">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() =>
setCurrentSection(
props.appealType
.currentSection - 1
)
}
>
{t("common:back-link")}
</a>
</li>
))}
</>
)}
{router.pathname == "/myportal/[appealtypes]" && (
<>
{/* <li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("newappeal:parent-page-title")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("newappeal:page-title")}
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:back-link")} {props.formTitle}
</li> */}
{props.appealType.currentSection > 1 &&
(props.appealType.currentSection == 9999 ? (
<li className="govuk-breadcrumbs__list-item">
<Link
href={"/"}
className="govuk-breadcrumbs__link"
>
{t(
"common:service-name-breadcrumb"
)}
</Link>
</li>
) : (
<>
<li className="govuk-breadcrumbs__list-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() =>
setCurrentSection(
props.appealType
.currentSection -
1
)
}
>
{t("common:back-link")}
</a>
</li>
</>
))}
</>
)}
{router.pathname == "/newappeal/selectappeal" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("newappeal:parent-page-title")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("newappeal:page-title")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
Select Appeal
</li>
</>
)}
{router.pathname == "/viewall" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-your-cases")}
</li>
</>
)}
{router.pathname == "/myportal/viewall" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{currentView.currentView.viewKey ==
"awaitingSubmissionDetails" &&
t(
"myportal:awatitingsubmission-card-title"
)}
{currentView.currentView.viewKey ==
"watchedCases" &&
t("myportal:watchedcases-card-title")}
{currentView.currentView.viewKey ==
"myCases" &&
t("myportal:mycases-card-title")}
{currentView.currentView.viewKey ==
"myRepresentations" &&
t(
"myportal:myrepresentations-card-title"
)}
</li>
</>
)}
{router.pathname == "/myportal/case" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/case/[ticketnumber]" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.searchResultsObj
.searchResultsObj.value[0].title
}
</li>
</>
)}
{router.pathname == "/case/id/[incident]" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/chwiliadcyfeiriadau"
: "/addresssearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-address-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/canlyniadaucyfeiriadau?" +
props.props.search
.searchString
: "/addresssearchresults?" +
props.props.search
.searchString
}
onClick={() => {
// spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link"
>
{t(
"common:breadcrumb-address-search-results"
)}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/myportal/case/id/[incident]" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth/chwiliadcyfeiriadau"
: "/myportal/addresssearch"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-address-search")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth/canlyniadaucyfeiriadau?" +
props.props.search
.searchString
: "/myportal/addresssearchresults?" +
props.props.search
.searchString
}
onClick={() => {
// spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link"
>
{t(
"common:breadcrumb-address-search-results"
)}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/myportal/case/[ticketnumber]" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/myportal/dnsapplications" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("dnsCommon:service-name")}
</li>
</>
)}
{router.pathname == "/myportal/dnsdetails" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={"/myportal/dnsapplications"}
className="govuk-breadcrumbs__link"
>
{t("dnsCommon:service-name")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/case" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/searchresults?q=" +
props.props.search
.searchString
: "/searchresults?q=" +
props.props.search
.searchString
}
onClick={() => {
// spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-search-results")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/myportal/representation" && (
<>
{/* {session != null && (
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/myportal"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
)}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/myportal/case" +
props.props.currentView
.caseReference
.currentReference
: "/myportal/case/" +
props.props.currentView
.caseReference
.currentReference
}
className="govuk-breadcrumbs__link"
>
{
props.props.currentView
.caseReference.currentReference
}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t(
"myrepresentations:make-a-representation-for-label"
)}{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li> */}
<li className="govuk-breadcrumbs__link-item">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
);
}}
>
{t("common:back-link")}
</a>
</li>
</>
)}
{router.pathname == "/account/personaldetails" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "cy"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("account:account-title")}
</li>
</>
)}
{router.pathname == "/account/register" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("account:register-new-account-heading")}
</li>
</>
)}
{router.pathname == "/account/changepassword" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "cy"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
Update your password
</li>
</>
)}
{router.pathname == "/dns" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("dnsCommon:service-name")}
</li>
</>
)}
{router.pathname == "/dns/[developmentName]" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "en"
? router.locale + "/../../dns"
: "/../../dns"
}
className="govuk-breadcrumbs__link"
>
{t("dnsCommon:service-name")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/dnsapplications" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("dnsCommon:service-name")}
</li>
</>
)}
{router.pathname == "/dnsdetails" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "en"
? router.locale +
"/dnsapplications"
: "/dnsapplications"
}
className="govuk-breadcrumbs__link"
>
{t("dnsCommon:service-name")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/dns/application-process" && (
<>
<li className="govuk-breadcrumbs__list-item">
Guidance
</li>
</>
)}
{router.pathname == "/dns/help" && (
<>
<li className="govuk-breadcrumbs__list-item">
Help
</li>
</>
)}
{router.pathname == "/dns/contact-us" && (
<>
<li className="govuk-breadcrumbs__list-item">
Contact us
</li>
</>
)}
{router.pathname == "/dns/applications" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("dnsApplications:page-title")}
</li>
</>
)}
{router.pathname == "/dns/application-view" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/dns/applications"
: "/dns/applications"
}
className="govuk-breadcrumbs__link"
>
{t(
"dnsApplicationView:page-parent-title"
)}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
TWA - Morlais Demonstration Zone
</li>
</>
)}
{router.pathname == "/help/cookies" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("cookies:cookie-breadcrumb")}
</li>
</>
)}
{router.pathname == "/privacy" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("common:footer-privacy-link-label")}
</li>
</>
)}
{router.pathname == "/accessibility" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t(
"common:footer-accessibility-link-label"
)}
</li>
</>
)}
{router.pathname == "/details-about-cookies" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("cookies:cookie-policy-title-heading")}
</li>
</>
)}
{router.pathname == "/auth/signin" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("auth:auth-page-title")}
</li>
</>
)}
{router.pathname == "/auth/verify-request" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("auth:auth-check-email-page-title")}
</li>
</>
)}
{router.pathname == "/auth/error" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("auth:auth-error-signin-error-title")}
</li>
</>
)}
</ol>
</div>
</nav>
</>
);
};
const mapStateToProps = (state) => {
return {
...state,
};
};
const mapDispatchToProps = (dispatch) => {
return {
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setRepresentationCapacity: (representationCapacity) => {
//dispatch(reset("representationForm"));
dispatch(setRepresentationCapacity(representationCapacity));
},
setCurrentView: (currentView) => {
dispatch(setCurrentView(currentView));
},
setCurrentSection: (currentSection) => {
dispatch(setCurrentSection(currentSection));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(Breadcrumbs);