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 { parseCookies } from "nookies"; import { connect } from "react-redux"; import { deleteAwaitingSubmissions, deleteWatchedCases, getAwaitingSubmissionProxy, getPortalModuleDetailsProxy, getWatchedCasesProxy, } from "../../actions"; import { getFormCollectionByID, getDetailsProxy } from "../../components/utils"; import transLookup from "../../data/lookuptranslations.json"; import { setAwaitingSubmission, setAwaitingSubmissionDetails, } from "../../store/awaitingSubmission/action"; import { setCurrentReference } from "../../store/currentView/action"; import { setSearchDetails, setSearchResults, } from "../../store/searchOutput/action"; import { setWatchedCases, setWatchedCasesDetails, } from "../../store/watchedCases/action"; const TopThree = (props) => { let { t } = useTranslation(); const { currentView, showTopThree, showDetails, setCurrentReference, topThreeType, setWatchedCases, setWatchedCasesDetails, setAwaitingSubmission, setAwaitingSubmissionDetails, setSearchResults, setSearchDetails, showLoginCheck, } = props; const router = useRouter(); const { locale } = router; let topthreeRow = []; let showTopThreeArr; showTopThreeArr = props.myReps ? showTopThree : showTopThree.value; Object.keys(showTopThreeArr).map((key, index) => { let createdDate = parseInt(showTopThreeArr[key].createdon); showTopThreeArr[key].createdDate = createdDate; }); showTopThreeArr.sort(function compare(a, b) { var dateA = new Date(a.createdDate); var dateB = new Date(b.createdDate); return dateB - dateA; }); // check start function sortByISODate(arr, dateKey) { return arr.sort((a, b) => new Date(b[dateKey]) - new Date(a[dateKey])); } function sortByField(arr, field, ascending = true) { return arr.sort((a, b) => { if (a[field] < b[field]) return ascending ? -1 : 1; if (a[field] > b[field]) return ascending ? 1 : -1; return 0; // Equal }); } //let showTopThreeArr = showTopThree.value; let showTopThreeArrDets = showDetails; showTopThreeArr = sortByField(showTopThreeArr, "ticketnumber"); //console.log("showTopThreeArr:", showTopThreeArr); showTopThreeArrDets = sortByField(showTopThreeArrDets, "pinswg_name"); //console.log("showTopThreeArrDets:", showTopThreeArrDets); showTopThreeArrDets = showTopThreeArrDets.flatMap((item) => item.value); let mergedArray = showTopThreeArr.map((item1) => { let item2 = showTopThreeArrDets.find( (item) => item.pinswg_name === item1.ticketnumber ); return { ...item1, ...item2 }; }); showTopThreeArr = mergedArray; showTopThreeArr = sortByISODate(showTopThreeArr, "createdon"); // check end const raisedDate = (datePart) => { var dateObj = new Date(datePart); return dateObj.toLocaleString(); }; const deleteItem = (caseID, topThreeType) => { let cookies = parseCookies(); //console.log("sssss", caseID, topThreeType); topThreeType == "watchedCases" && deleteWatchedCases(caseID) .then((data) => data) .then(() => { getWatchedCasesProxy(cookies.pinsUser).then((data) => { let showWatchedCases = (submittedArr) => { const required = submittedArr.value.filter((el) => { return ( el.pinswg_representationsubmitted == null ); }); let newObj = {}; return Object.assign(newObj, { "@odata.count": required.length, "value": required, }); }; data = showWatchedCases(data); data.value.sort(function compare(a, b) { var dateA = new Date(a.createdon); var dateB = new Date(b.createdon); return dateB - dateA; }); setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then( (data) => { setWatchedCasesDetails(data); } ); }); }); topThreeType == "awaitingSubmission" && deleteAwaitingSubmissions(caseID) .then((data) => { return data; }) .then(() => { getAwaitingSubmissionProxy(cookies.pinsUser).then( (data) => { setAwaitingSubmission(data), getDetailsProxy( data, "awaitingSubmission" ).then((data) => { //console.log( // "submission get details:", // data // ); setAwaitingSubmissionDetails(data); }); } ); }); }; const getIncidentId = (topThreeType, objArr) => { switch (topThreeType) { case "myCases": return objArr.incidentid; break; case "watchedCases": return objArr._pinswg_watchedcase_value; break; case "myRepresentations": return objArr.ticketnumber; break; case "awaitingSubmission": return objArr.ticketnumber; break; default: // code block } }; let topThreeOnlyArr = showTopThreeArr.slice(0, 3); Object.keys(topThreeOnlyArr).map((key, index) => { topthreeRow.push(