import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { setCurrentReference } from "../../store/currentView/action";
import { connect } from "react-redux";
import jsonpath from "jsonpath";
import _ from "lodash";
import transLookup from "../../data/lookuptranslations.json";
const SearchResults = (props) => {
const {
searchString,
searchResultsObj,
searchDetailsObj,
setCurrentReference,
} = props;
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
var resultsArr = searchResultsObj.value || [];
const ResultsView = (resultsArr) => {
return (
-
{t("search:searchresults-case-reference-label")}
-
{t("search:searchresults-site-address-label")}
-
{t("search:searchresults-applicant-label")}
-
{t("search:searchresults-authority-label")}
-
{t("search:searchresults-case-type-label")}
-
{t("search:searchresults-status-label")}
{resultsArr.map((item, key) => {
let detailsObj = jsonpath.query(
searchDetailsObj,
"$..value[?(@.pinswg_name=='" + item.title + "')]"
);
detailsObj = detailsObj[0];
return (
-
{
setCurrentReference({
"currentReference": item.title,
"currentType":
"searchResultsObj",
"incidentid": item.incidentid,
});
}}
>
{t(
"search:searchresults-case-reference-label"
)}
:
{item.title}
-
{t(
"search:searchresults-site-address-label"
)}
:
{_.has(detailsObj, "pinswg_siteaddressline1")
? detailsObj.pinswg_siteaddressline1
: ""}
{_.has(detailsObj, "pinswg_siteaddressline1")
? detailsObj.pinswg_siteaddressline2
: ""}
{_.has(detailsObj, "pinswg_siteaddressline1")
? detailsObj.pinswg_siteaddresstown
: ""}
{_.has(detailsObj, "pinswg_siteaddressline1")
? detailsObj.pinswg_siteaddresscounty
: ""}
{_.has(detailsObj, "pinswg_siteaddressline1")
? detailsObj.pinswg_siteaddresspostcode
: ""}
-
{t("search:searchresults-applicant-label")}:
{_.has(detailsObj, [
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue",
])
? detailsObj[
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
-
{t("search:searchresults-authority-label")}:
{_.has(item, [
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue",
])
? router.locale == "cy"
? jsonpath.query(
transLookup,
'$..[?(@.value=="' +
item[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy'
)
: item[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || "N/A"
: ""}
-
{t("search:searchresults-case-type-label")}:
{router.locale == "cy"
? jsonpath.query(
transLookup,
'$..[?(@.value=="' +
item[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy'
)
: item[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] || "N/A"}
-
{t("search:searchresults-status-label")}:
{router.locale == "cy"
? jsonpath.query(
transLookup,
'$..[?(@.value=="' +
item[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy'
)
: item[
"statuscode@OData.Community.Display.V1.FormattedValue"
] || "N/A"}
);
})}
);
};
return (
{t("search:searchresults-title-label")}
{resultsArr.length > 200
? t("search:searchresults-max-count-label")
: t("search:searchresults-count-label", {
count: resultsArr.length,
})}
.
{typeof searchString != "undefined" ? (
<>
{t("search:searchresults-case-count-label")}{" "}
{" "}
"{searchString}"
>
) : (
""
)}
{resultsArr.length > 0 ? (
ResultsView(resultsArr)
) : (
)}
);
};
const mapDispatchToProps = (dispatch) => {
return {
setCurrentReference: (currentReference) => {
dispatch(setCurrentReference(currentReference));
},
};
};
export default connect(null, mapDispatchToProps)(SearchResults);