From e9638eb900f55331b5b19d6ce56d723d60401e8b Mon Sep 17 00:00:00 2001
From: Dennis Collaris <d.a.c.collaris@uu.nl>
Date: Sat, 16 Nov 2024 14:33:52 +0000
Subject: [PATCH] fix: inserting variables in reports

---
 .../plugins/InsertVariablesPlugin.tsx         |  2 +-
 .../textEditor/plugins/PreviewPlugin.tsx      | 21 ++++++++++---------
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/libs/shared/lib/components/textEditor/plugins/InsertVariablesPlugin.tsx b/libs/shared/lib/components/textEditor/plugins/InsertVariablesPlugin.tsx
index afe7016cc..c854fe4a2 100644
--- a/libs/shared/lib/components/textEditor/plugins/InsertVariablesPlugin.tsx
+++ b/libs/shared/lib/components/textEditor/plugins/InsertVariablesPlugin.tsx
@@ -36,7 +36,7 @@ export const InsertVariablesPlugin = () => {
     }
 
     return Object.entries(typeObj.attributes)
-      .map(([k, v]) => Object.keys(v).map((x) => `${k} ${x}`))
+      .map(([k, v]) => Object.keys(v.statistics).map((x) => `${k} ${x}`))
       .flat();
   }
 
diff --git a/libs/shared/lib/components/textEditor/plugins/PreviewPlugin.tsx b/libs/shared/lib/components/textEditor/plugins/PreviewPlugin.tsx
index d6a2bd2f9..9867fb865 100644
--- a/libs/shared/lib/components/textEditor/plugins/PreviewPlugin.tsx
+++ b/libs/shared/lib/components/textEditor/plugins/PreviewPlugin.tsx
@@ -25,15 +25,15 @@ export function PreviewPlugin({ contentEditable }: { contentEditable: RefObject<
   }
 
   const result = useGraphQueryResult();
-  const attributeValues = useCallback(
-    (settings: Vis1DProps & VisualizationSettingsType) => {
-      if (!settings.nodeLabel || !settings.attribute) {
+  const getAttributeValues = useCallback(
+    (settings: Vis1DProps & VisualizationSettingsType, attributeKey: string | number) => {
+      if (!settings.nodeLabel || !attributeKey) {
         return [];
       }
 
       return result.nodes
-        .filter((item) => item.label === settings.nodeLabel && item.attributes && settings.attribute! in item.attributes)
-        .map((item) => item.attributes[settings.attribute!] as string | number);
+        .filter((item) => item.label === settings.nodeLabel && item.attributes && attributeKey in item.attributes)
+        .map((item) => item.attributes[attributeKey] as string | number);
     },
     [result],
   );
@@ -55,22 +55,23 @@ export function PreviewPlugin({ contentEditable }: { contentEditable: RefObject<
         case VariableType.statistic:
           const [nodeType, feature, statistic] = name.split(' ');
           const node = result.metaData?.nodes.types[nodeType];
-          const attribute = node?.attributes[feature] as any;
+          const attribute = node?.attributes[feature].statistics as any;
           if (attribute == null) return '';
           const value = attribute[statistic];
           return ` ${value} `;
 
         case VariableType.visualization:
-          const index = 0;
-          const activeVisualization = vis.openVisualizationArray[index] as Vis1DProps & VisualizationSettingsType;
+          const activeVisualization = vis.openVisualizationArray.find(x => x.name == name) as Vis1DProps & VisualizationSettingsType;
 
           if (!activeVisualization) {
             throw new Error('Tried to render non-existing visualization');
           }
 
-          const data = attributeValues(activeVisualization);
+          const xAxisData = getAttributeValues(activeVisualization, activeVisualization.xAxisLabel!);
+          const yAxisData = getAttributeValues(activeVisualization, activeVisualization.yAxisLabel!);
+          debugger;
           const plotType = activeVisualization.plotType;
-          const plotData = getPlotData(data, plotType);
+          const plotData = getPlotData(xAxisData, plotType, yAxisData);
 
           const plot = await newPlot(document.createElement('div'), plotData, {
             width: 600,
-- 
GitLab