shows primary lpa and then lists additional lps below on the portal summary tab Related work items: #22699
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
import { JSONPath as jsonpath } from "jsonpath-plus";
|
|
|
|
const translateLpaName = ({ name, locale, transLookup }) => {
|
|
if (!name) return "";
|
|
|
|
if (locale !== "cy") return name;
|
|
|
|
return (
|
|
jsonpath({
|
|
path: '$..[?(@ && @.value=="' + name + '")].value_cy',
|
|
json: transLookup,
|
|
eval: true
|
|
})?.[0] || name
|
|
);
|
|
};
|
|
|
|
export const getCaseLpaNames = ({
|
|
casesObj,
|
|
detailsObj,
|
|
locale,
|
|
transLookup
|
|
}) => {
|
|
if (!casesObj) return [];
|
|
|
|
const primaryLpaName =
|
|
casesObj[
|
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
|
] || "";
|
|
|
|
const translatedPrimaryLpaName = translateLpaName({
|
|
name: primaryLpaName,
|
|
locale,
|
|
transLookup
|
|
});
|
|
|
|
const additionalLpaNames = (detailsObj.additionalLPAs || []).map((lpa) =>
|
|
translateLpaName({
|
|
name: lpa?.name || "",
|
|
locale,
|
|
transLookup
|
|
})
|
|
);
|
|
|
|
return [
|
|
...new Set(
|
|
[translatedPrimaryLpaName, ...additionalLpaNames].filter(Boolean)
|
|
)
|
|
];
|
|
};
|
|
|
|
export const getCaseLpaDisplayValue = ({
|
|
casesObj,
|
|
detailsObj,
|
|
locale,
|
|
transLookup
|
|
}) => {
|
|
return getCaseLpaNames({ casesObj, detailsObj, locale, transLookup }).join(
|
|
", "
|
|
);
|
|
};
|
|
|
|
export const getCaseLpaDisplayLines = ({
|
|
casesObj,
|
|
locale,
|
|
detailsObj,
|
|
transLookup
|
|
}) => {
|
|
return getCaseLpaNames({ casesObj, detailsObj, locale, transLookup });
|
|
};
|