import Link from "next/link"; import _ from "lodash"; import { useRouter } from "next/router"; import useTranslation from "next-translate/useTranslation"; import { setCurrentReference } from "../../store/currentView/action"; import { connect } from "react-redux"; import { parseCookies } from "nookies"; import { getToken, getWatchedCasesProxy, getPortalModuleDetailsProxy, deleteWatchedCases, } from "../../actions"; import { setWatchedCases, setWatchedCasesDetails, } from "../../store/watchedCases/action"; import { getFormCollectionByID } from "../../components/utils"; const TopThree = (props) => { let { t } = useTranslation(); const { showTopThree, showDetails, setCurrentReference, topThreeType, setWatchedCases, setWatchedCasesDetails, } = props; const router = useRouter(); const { locale } = router; let topthreeRow = []; let showTopThreeArr = showTopThree.value; const deleteItem = (caseID, topThreeType) => { let token = getToken(); let cookies = parseCookies(); topThreeType == "watchedCases" && deleteWatchedCases(caseID) .then((data) => data) .then(() => { getWatchedCasesProxy(token, cookies.pinsUser).then( (data) => { setWatchedCases(data), getDetails(token, data, "myWatchedCases").then( (data) => { setWatchedCasesDetails(data); } ); } ); }); }; const getDetails = (token, resultsObj, detailsType) => { //console.log(resultsObj); let detailsArr = []; resultsObj = resultsObj.value; const detailsObj = resultsObj.map((searchDetail, index) => { if (searchDetail.pinswg_appealcasetype == null) { console.log( detailsType != "myWatchedCases" ? searchDetail.ticketnumber : searchDetail[ "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" ] ); } else { detailsArr.push( getPortalModuleDetailsProxy( token, getFormCollectionByID( searchDetail.pinswg_appealcasetype ).LogicalCollectionName, detailsType != "myWatchedCases" ? searchDetail.ticketnumber : searchDetail[ "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" ] ) ); } }); //console.log(detailsArr); return Promise.all(detailsArr); }; let topThreeOnlyArr = showTopThreeArr.slice(0, 3); Object.keys(topThreeOnlyArr).map((key, index) => { topthreeRow.push(
{t("myportal:case-reference")}:{" "} { setCurrentReference({ "currentReference": topThreeType != "watchedCases" ? topThreeType != "myRepresentations" ? showTopThreeArr[key] .ticketnumber : showTopThreeArr[key][ "_pinswg_case_value@OData.Community.Display.V1.FormattedValue" ] : showTopThreeArr[key][ "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" ], "currentType": topThreeType, "incidentid": topThreeType != "watchedCases" ? topThreeType != "myRepresentations" ? showTopThreeArr[key] ._pinswg_case_value : showTopThreeArr[key][ " _pinswg_watchedcase_value" ] : showTopThreeArr[key][ " _pinswg_watchedcase_value" ], "appealType": showTopThreeArr[key] .pinswg_appealcasetype, }); }} > {topThreeType != "watchedCases" ? topThreeType != "myRepresentations" ? showTopThreeArr[key].ticketnumber : showTopThreeArr[key][ "_pinswg_case_value@OData.Community.Display.V1.FormattedValue" ] : showTopThreeArr[key][ "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" ]}
{topThreeType != "awaitingSubmission" ? (
{t("myportal:case-address")}:{" "} {_.isEmpty(showDetails) ? t("myportal:case-address-not-entered") : _.isEmpty(showDetails[index]) ? t("myportal:case-address-not-entered") : _.isEmpty(showDetails[index].value[0]) ? t("myportal:case-address-not-entered") : _.isEmpty( showDetails[index].value[0] .pinswg_siteaddressline1 ) ? t("myportal:case-address-not-entered") : showDetails[index].value[0] .pinswg_siteaddressline1}
) : ( "" )} {topThreeType == "awaitingSubmission" ? (
Make Representation on Case Incomplete, not submitted
) : ( "" )}
{topThreeType == "watchedCases" && (
{ event.preventDefault(); deleteItem( showTopThreeArr[key].pinswg_watchlistid, "watchedCases" ); alert( "You have stopped watching case " + showTopThreeArr[key][ "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" ] ); }} > —
)}
); }); let noRecordsLabel = ""; switch (topThreeType) { case "watchedCases": noRecordsLabel = t("myportal:norecords-watched-cases"); break; case "myRepresentations": noRecordsLabel = t("myportal:norecords-representations"); break; case "myCases": noRecordsLabel = t("myportal:norecords-cases"); break; case "awaitingSubmission": noRecordsLabel = t("myportal:norecords-awaiting-submissions"); break; } return ( <> {topthreeRow.length == 0 ? (
{noRecordsLabel}
) : ( topthreeRow )} ); }; const mapDispatchToProps = (dispatch) => { return { setCurrentReference: (currentReference) => { dispatch(setCurrentReference(currentReference)); }, setWatchedCases: (watchedCases) => { dispatch(setWatchedCases(watchedCases)); }, setWatchedCasesDetails: (watchedCasesDetails) => { dispatch(setWatchedCasesDetails(watchedCasesDetails)); }, }; }; export default connect(null, mapDispatchToProps)(TopThree);