From 1a36e3bbf87a75fd2f1d0f5ff086c21ae7cb80d8 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Wed, 27 Jul 2022 14:22:43 +0200 Subject: [PATCH] [Ivette] Use a more concise way to merge Synced Arrays a fix typing --- ivette/src/frama-c/kernel/Properties.tsx | 33 ++++++++++++------------ 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/ivette/src/frama-c/kernel/Properties.tsx b/ivette/src/frama-c/kernel/Properties.tsx index fe050e3a81d..3cbb14f26fb 100644 --- a/ivette/src/frama-c/kernel/Properties.tsx +++ b/ivette/src/frama-c/kernel/Properties.tsx @@ -47,7 +47,7 @@ import { statusData } from 'frama-c/kernel/api/properties'; import * as Properties from 'frama-c/kernel/api/properties'; import * as Eva from 'frama-c/plugins/eva/api/general'; -type Property = statusData & Eva.propertiesData; +type Property = statusData & Partial<Eva.propertiesData>; // -------------------------------------------------------------------------- // --- Filters @@ -305,13 +305,15 @@ const byStatus = ); const byTaint = - Compare.byRank( - 'data_tainted', - 'control_tainted', - 'not_tainted', - 'error', - 'not_applicable', - 'not_computed', + Compare.option( + Compare.byRank( + 'data_tainted', + 'control_tainted', + 'not_tainted', + 'error', + 'not_applicable', + 'not_computed', + ) ); const byProperty: Compare.ByFields<Property> = { @@ -516,7 +518,9 @@ function PropertyColumns(): JSX.Element { [alarmDict], ); const getTaint = React.useCallback( - ({ taint }: Property) => (taintDict.get(taint) ?? { name: taint }), + ({ taint }: Property) => ( + taint === undefined ? taint : (taintDict.get(taint) ?? { name: taint }) + ), [taintDict], ); return ( @@ -609,13 +613,10 @@ export default function RenderProperties(): JSX.Element { useEffect(() => { model.removeAllData(); - const data = new Array(kernelData.length); - for (let i = 0; i < kernelData.length; i++) { - const kernel = kernelData[i]; - const { key } = kernel; - const eva = evaData.find((elt) => elt.key === key); - data[i] = { ...kernel, ...eva }; - } + const data = kernelData.map(entry1 => ({ + ...entry1, + ...(evaData.find(entry2 => entry2.key === entry1.key)) + })); model.updateData(data); model.reload(); }, [model, kernelData, evaData]); -- GitLab