diff --git a/components/breadcrumbs.js b/components/breadcrumbs.js index 12055eea..b96c0cf5 100644 --- a/components/breadcrumbs.js +++ b/components/breadcrumbs.js @@ -1,5 +1,3 @@ -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"; @@ -7,7 +5,7 @@ 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 { change } from "redux-form"; import { setCurrentSection } from "../store/appealType/action"; import { @@ -15,35 +13,114 @@ import { setRepresentationSubmit } from "../store/currentView/action"; const Breadcrumbs = (props) => { - const { - currentView, - setCurrentView, - setCurrentSection, - setRepresentationCapacity, - setRepresentationSubmit - } = props; + const { currentView, setCurrentSection, setRepresentationSubmit } = props; const router = useRouter(); let { t } = useTranslation(); - const { data: session, status } = useSession(); + const { data: session } = useSession(); + + const currentReference = + props?.props?.currentView?.caseReference?.currentReference || ""; + const fallbackSearchTitle = + props?.props?.searchResultsObj?.searchResultsObj?.value?.[0]?.title || + ""; + const caseReferenceDisplay = currentReference || fallbackSearchTitle; + + const myPortalHref = + router.locale != "en" ? "/" + router.locale + "/fymhorth" : "/myportal"; + const cyMyPortalHref = + router.locale == "cy" ? "/" + router.locale + "/fymhorth" : "/myportal"; + const caseReference = currentView?.caseReference || {}; + const repDetails = caseReference?.repDetails; + const hasRepDetails = Object.prototype.hasOwnProperty.call( + caseReference, + "repDetails" + ); const qcount = - currentView.caseReference.appealType == 846040000 || - currentView.caseReference.appealType == 846040001 || - currentView.caseReference.appealType == 846040025 || - currentView.caseReference.appealType == 846040004 || - currentView.caseReference.appealType == 846040018 || - currentView.caseReference.appealType == 846040003 || - currentView.caseReference.appealType == 846040009 || - currentView.caseReference.appealType == 846040008 + caseReference.appealType == 846040000 || + caseReference.appealType == 846040001 || + caseReference.appealType == 846040025 || + caseReference.appealType == 846040004 || + caseReference.appealType == 846040018 || + caseReference.appealType == 846040003 || + caseReference.appealType == 846040009 || + caseReference.appealType == 846040008 ? 7 - : currentView.caseReference.appealType == 846040005 || - currentView.caseReference.appealType == 846040006 || - currentView.caseReference.appealType == 846040007 + : caseReference.appealType == 846040005 || + caseReference.appealType == 846040006 || + caseReference.appealType == 846040007 ? 9 : ""; - var viewAllKey = currentView?.viewKey || router.query.viewKey; + const { va, adv, ads, key } = router.query; + + const breadcrumbHref = (() => { + if (va === "true") { + return { + pathname: "/myportal/viewall", + query: { key } + }; + } + + const base = session ? "/myportal" : ""; + + if (adv === "true") { + return { + pathname: `${base}/advancedsearchresults`, + query: router.query + }; + } + + if (ads === "true") { + return { + pathname: `${base}/addresssearchresults`, + query: router.query + }; + } + + return { + pathname: `${base}/searchresults`, + query: router.query + }; + })(); + + const breadcrumbLabel = (() => { + if (va === "true") { + if (key === "awaitingSubmissionDetails") + return t("myportal:awatitingsubmission-card-title"); + } + if (key === "watchedCases") + return t("myportal:watchedcases-card-title"); + + if (key === "myCases") return t("myportal:mycases-card-title"); + + if (key === "myRepresentations") + return t("myportal:myrepresentations-card-title"); + + if (key === "awaitingSubmissionDetails") + return t("myportal:awatitingsubmission-card-title"); + + if (key === "watchedCases") + return t("myportal:watchedcases-card-title"); + + if (key === "myCases") return t("myportal:mycases-card-title"); + + if (key === "myRepresentations") + return t("myportal:myrepresentations-card-title"); + + if (key === "mySubmittedReps") return "Submitted representations"; + + if (adv === "true") { + return t("common:breadcrumb-advanced-search-results"); + } + + if (ads === "true") { + return t("common:breadcrumb-address-search-results"); + } + + return t("common:breadcrumb-search-results"); + })(); return ( <>