From 926703edbb57962d502cb97035d6efbb92cd4c17 Mon Sep 17 00:00:00 2001
From: Leonardo <leomilho@gmail.com>
Date: Mon, 13 May 2024 14:51:48 +0200
Subject: [PATCH] fix: vis manager sync with select vis view

---
 .../lib/vis/manager/VisualizationManager.tsx       |  5 ++---
 libs/shared/lib/vis/views/recommender.tsx          | 14 +++-----------
 .../lib/vis/visualizations/paohvis/paohvis.tsx     |  8 +++++++-
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/libs/shared/lib/vis/manager/VisualizationManager.tsx b/libs/shared/lib/vis/manager/VisualizationManager.tsx
index 2c5162894..06add912d 100644
--- a/libs/shared/lib/vis/manager/VisualizationManager.tsx
+++ b/libs/shared/lib/vis/manager/VisualizationManager.tsx
@@ -17,12 +17,11 @@ import {
 } from '../../data-access';
 import { VisualizationManagerType } from '.';
 import { SelectType, addSelect } from '../../data-access/store/interactionSlice';
-import { PaohVisComponent } from '../visualizations/paohvis/paohvis';
 
 export const Visualizations: Record<string, Function> = {
   TableVis: () => import('../visualizations/tablevis/tablevis'),
-  // PaohVis: () => import('../visualizations/paohvis/paohvis'),
-  PaohVis: () => Promise.resolve({ default: PaohVisComponent }),
+  PaohVis: () => import('../visualizations/paohvis/paohvis'),
+  // PaohVis: () => Promise.resolve({ default: PaohVisComponent }),
   RawJSONVis: () => import('../visualizations/rawjsonvis/rawjsonvis'),
   NodeLinkVis: () => import('../visualizations/nodelinkvis/nodelinkvis'),
   MatrixVis: () => import('../visualizations/matrixvis/matrixvis'),
diff --git a/libs/shared/lib/vis/views/recommender.tsx b/libs/shared/lib/vis/views/recommender.tsx
index dac4365f3..5f85f9a0d 100644
--- a/libs/shared/lib/vis/views/recommender.tsx
+++ b/libs/shared/lib/vis/views/recommender.tsx
@@ -1,23 +1,15 @@
 import React from 'react';
 import Info from '../../components/info';
+import { Visualizations } from '../manager';
 
 type Props = { onClick: (id: string) => void };
 
-const options = {
-  TableVis: '',
-  NodeLinkVis: '',
-  PaohVis: '',
-  SemanticSubstratesVis: '',
-  MatrixVis: '',
-  RawJSONVis: '',
-};
-
 export function Recommender({ onClick }: Props) {
   return (
     <div className="p-4">
-      <span className="text-md font-thin">Select a visualization</span>
+      <span className="text-md">Select a visualization</span>
       <div className="grid grid-cols-3 gap-4">
-        {Object.entries(options).map(([name, image]) => (
+        {Object.keys(Visualizations).map((name) => (
           <div
             key={name}
             className="p-4 cursor-pointer border hover:bg-secondary-100"
diff --git a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
index 48b70b406..54ae883c6 100644
--- a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
+++ b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
@@ -485,7 +485,13 @@ export const PaohVis = ({ data, graphMetadata, schema, configuration: conf, upda
   };
 
   useEffect(() => {
-    if (graphMetadata && configuration.columnNode !== '' && configuration.rowNode !== '') {
+    if (
+      graphMetadata &&
+      configuration.columnNode !== '' &&
+      configuration.rowNode !== '' &&
+      graphMetadata.nodes.types[configuration.rowNode] &&
+      graphMetadata.nodes.types[configuration.columnNode]
+    ) {
       const firstColumnLabels = Object.keys(graphMetadata.nodes.types[configuration.columnNode].attributes).slice(0, 2);
       const firstRowLabels = Object.keys(graphMetadata.nodes.types[configuration.rowNode].attributes).slice(0, 2);
       if (firstColumnLabels && firstRowLabels) {
-- 
GitLab