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 { change } from "redux-form"; import { setCurrentSection } from "../store/appealType/action"; import { setRepresentationCapacity, setRepresentationSubmit } from "../store/currentView/action"; const Breadcrumbs = (props) => { const { currentView, setCurrentSection, setRepresentationSubmit } = props; const router = useRouter(); let { t } = useTranslation(); 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 = 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 : caseReference.appealType == 846040005 || caseReference.appealType == 846040006 || caseReference.appealType == 846040007 ? 9 : ""; 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 ( <> ); }; 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)); }, setRepresentationSubmit: (representationSubmit) => { dispatch(setRepresentationSubmit(representationSubmit)); }, setCurrentView: (currentView) => { dispatch(setCurrentView(currentView)); }, setCurrentSection: (currentSection) => { dispatch(setCurrentSection(currentSection)); } }; }; export default connect(mapStateToProps, mapDispatchToProps)(Breadcrumbs);