From dbf26815444f124245791d2a79297a3dd2e2f235 Mon Sep 17 00:00:00 2001
From: Dennis Collaris <d.a.c.collaris@uu.nl>
Date: Tue, 5 Nov 2024 09:04:34 +0000
Subject: [PATCH] fix: prevent importing and instantiating component for vis
 overview

---
 libs/shared/lib/vis/common/types.ts           |  2 -
 libs/shared/lib/vis/views/Recommender.tsx     | 39 +++++++++++++++----
 .../lib/vis/visualizations/Vis0D/Vis0D.tsx    |  2 -
 .../visualizations/arcplotvis/arcplotvis.tsx  |  2 -
 .../lib/vis/visualizations/documentation.mdx  |  1 -
 .../lib/vis/visualizations/mapvis/mapvis.tsx  |  2 -
 .../visualizations/matrixvis/matrixvis.tsx    |  2 -
 .../nodelinkvis/nodelinkvis.tsx               |  2 -
 .../vis/visualizations/paohvis/paohvis.tsx    |  2 -
 .../visualizations/rawjsonvis/rawjsonvis.tsx  |  2 -
 .../semanticsubstratesvis.tsx                 |  4 --
 .../vis/visualizations/tablevis/tablevis.tsx  |  2 -
 .../lib/vis/visualizations/vis1D/Vis1D.tsx    |  2 -
 13 files changed, 31 insertions(+), 33 deletions(-)

diff --git a/libs/shared/lib/vis/common/types.ts b/libs/shared/lib/vis/common/types.ts
index 118c0a933..095a1ed5f 100644
--- a/libs/shared/lib/vis/common/types.ts
+++ b/libs/shared/lib/vis/common/types.ts
@@ -14,8 +14,6 @@ export type VisualizationSettingsType = {
 };
 
 export type VISComponentType<T> = {
-  displayName: keyof typeof Visualizations;
-  description: string;
   component: React.FC<VisualizationPropTypes<T>>;
   settingsComponent: FC<VisualizationSettingsPropTypes<T>>;
   settings: T;
diff --git a/libs/shared/lib/vis/views/Recommender.tsx b/libs/shared/lib/vis/views/Recommender.tsx
index 93682640b..28215cefc 100644
--- a/libs/shared/lib/vis/views/Recommender.tsx
+++ b/libs/shared/lib/vis/views/Recommender.tsx
@@ -3,7 +3,6 @@ import Info from '../../components/info';
 import { addVisualization } from '../../data-access/store/visualizationSlice';
 import { useActiveSaveStateAuthorization, useAppDispatch } from '../../data-access';
 import { Visualizations } from '../components/VisualizationPanel';
-import { isVisualizationReleased } from 'config';
 
 type VisualizationDescription = {
   name: string;
@@ -11,6 +10,32 @@ type VisualizationDescription = {
   description: string;
 };
 
+const displayNames: { [key: string]: string } = {
+  ArcPlot: 'ArcPlot',
+  MapVis: 'MapVis',
+  MatrixVis: 'MatrixVis',
+  NodeLinkVis: 'NodeLinkVis',
+  PaohVis: 'PaohVis',
+  TableVis: 'TableVis',
+  SemanticSubstratesVis: 'SemanticSubstratesVis',
+  RawJSONVis: 'RawJSONVis',
+  Vis0D: 'Vis0D',
+  Vis1D: 'Vis1D',
+};
+
+const descriptions: { [key: string]: string } = {
+  ArcPlot: '',
+  MapVis: 'Geographical Features',
+  MatrixVis: 'Overview & Details',
+  NodeLinkVis: 'General Patterns and Connections',
+  PaohVis: 'Paths and Connection',
+  TableVis: 'Node Attribute Statistics and Details',
+  SemanticSubstratesVis: 'Node/Edge Attribute Exploration',
+  RawJSONVis: '(Raw) Data Export',
+  Vis0D: 'KPI visualization',
+  Vis1D: 'Basic charts',
+};
+
 export function Recommender() {
   const dispatch = useAppDispatch();
   const saveStateAuthorization = useActiveSaveStateAuthorization();
@@ -18,18 +43,16 @@ export function Recommender() {
 
   useEffect(() => {
     const loadVisualizations = async () => {
-      const descriptions = await Promise.all(
-        Object.keys(Visualizations).map(async (key) => {
-          const visualizationModule = await Visualizations[key]();
-          const { default: visualizationComponent } = visualizationModule;
+      const visDescriptions = await Promise.all(
+        Object.keys(Visualizations).map((key) => {
           return {
             name: key,
-            displayName: visualizationComponent.displayName,
-            description: visualizationComponent.description,
+            displayName: displayNames[key],
+            description: descriptions[key],
           };
         }),
       );
-      setVisualizationDescriptions(descriptions);
+      setVisualizationDescriptions(visDescriptions);
     };
 
     loadVisualizations();
diff --git a/libs/shared/lib/vis/visualizations/Vis0D/Vis0D.tsx b/libs/shared/lib/vis/visualizations/Vis0D/Vis0D.tsx
index cc079a384..b3c56b11d 100644
--- a/libs/shared/lib/vis/visualizations/Vis0D/Vis0D.tsx
+++ b/libs/shared/lib/vis/visualizations/Vis0D/Vis0D.tsx
@@ -80,8 +80,6 @@ const Vis0DSettings = ({ settings, updateSettings }: VisualizationSettingsPropTy
 const Vis0DRef = React.createRef<Vis0DVisHandle>();
 
 export const Vis0DComponent: VISComponentType<Vis0DProps> = {
-  displayName: '0Dvis',
-  description: 'KPI visualization',
   component: React.forwardRef((props: VisualizationPropTypes<Vis0DProps>, ref) => <Vis0D {...props} ref={Vis0DRef} />),
   settingsComponent: Vis0DSettings,
   settings: settings,
diff --git a/libs/shared/lib/vis/visualizations/arcplotvis/arcplotvis.tsx b/libs/shared/lib/vis/visualizations/arcplotvis/arcplotvis.tsx
index c7a336462..accdeb1fa 100644
--- a/libs/shared/lib/vis/visualizations/arcplotvis/arcplotvis.tsx
+++ b/libs/shared/lib/vis/visualizations/arcplotvis/arcplotvis.tsx
@@ -238,8 +238,6 @@ const ArcPlotVisSettings = ({
 // remove ts ignore when added to Visualization Dict, because displayname needs to be key of it
 // @ts-ignore
 export const ArcVisComponent: VISComponentType = {
-  displayName: 'ArcPlot',
-  description: '',
   component: ArcPlotVis,
   settingsComponent: ArcPlotVisSettings,
   settings: configuration,
diff --git a/libs/shared/lib/vis/visualizations/documentation.mdx b/libs/shared/lib/vis/visualizations/documentation.mdx
index 43cbe3c10..78ca28794 100644
--- a/libs/shared/lib/vis/visualizations/documentation.mdx
+++ b/libs/shared/lib/vis/visualizations/documentation.mdx
@@ -62,7 +62,6 @@ const VisualizationSettings = ({configuration, graph, updateSettings}: {
 };
 
 export const VisualizationComponent: VISComponentType = {
-  displayName: 'Visualization name',
   component: Visualization,
   settings: VisualizationSettings,
   configuration: configuration,
diff --git a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
index b53acfa01..e06283d0e 100644
--- a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
+++ b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
@@ -338,8 +338,6 @@ export const MapVis = forwardRef((props: VisualizationPropTypes<MapProps>, refEx
 const mapRef = React.createRef<{ exportImageInternal: () => void }>();
 
 const MapComponent: VISComponentType<MapProps> = {
-  displayName: 'MapVis',
-  description: 'Geographical Features',
   component: React.forwardRef((props: VisualizationPropTypes<MapProps>, ref) => <MapVis {...props} ref={mapRef} />),
   settingsComponent: MapSettings,
   settings: settings,
diff --git a/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx b/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx
index 43b76513f..b3bc4d87d 100644
--- a/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx
+++ b/libs/shared/lib/vis/visualizations/matrixvis/matrixvis.tsx
@@ -79,8 +79,6 @@ const MatrixSettings = ({ settings, updateSettings }: VisualizationSettingsPropT
 const matrixVisRef = React.createRef<{ exportImageInternal: () => void }>();
 
 export const MatrixVisComponent: VISComponentType<MatrixVisProps> = {
-  displayName: 'MatrixVis',
-  description: 'Overview & Details',
   component: React.forwardRef((props: VisualizationPropTypes<MatrixVisProps>, ref) => <MatrixVis {...props} ref={matrixVisRef} />),
   settingsComponent: MatrixSettings,
   settings: settings,
diff --git a/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx b/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx
index a62b3e883..d50ab60e5 100644
--- a/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx
+++ b/libs/shared/lib/vis/visualizations/nodelinkvis/nodelinkvis.tsx
@@ -270,8 +270,6 @@ const NodelinkSettings = ({ settings, graphMetadata, updateSettings }: Visualiza
 const nodeLinkVisRef = React.createRef<{ exportImageInternal: () => void }>();
 
 export const NodeLinkComponent: VISComponentType<NodelinkVisProps> = {
-  displayName: 'NodeLinkVis',
-  description: 'General Patterns and Connections',
   component: React.forwardRef((props: VisualizationPropTypes<NodelinkVisProps>, ref) => <NodeLinkVis {...props} ref={nodeLinkVisRef} />),
   settingsComponent: NodelinkSettings,
   settings: patchLegacySettings(settings),
diff --git a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
index 918a4c971..f62b8b0c9 100644
--- a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
+++ b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
@@ -1148,8 +1148,6 @@ const PaohSettings = ({ settings, graphMetadata, updateSettings }: Visualization
 const paohvisRef = React.createRef<{ exportImageInternal: () => void }>();
 
 export const PaohVisComponent: VISComponentType<PaohVisProps> = {
-  displayName: 'PaohVis',
-  description: 'Paths and Connection',
   component: React.forwardRef((props: VisualizationPropTypes<PaohVisProps>, ref) => <PaohVis {...props} ref={paohvisRef} />),
   settingsComponent: PaohSettings,
   settings: settings,
diff --git a/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx b/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx
index 9cfb89121..d7f7b2450 100644
--- a/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx
+++ b/libs/shared/lib/vis/visualizations/rawjsonvis/rawjsonvis.tsx
@@ -66,9 +66,7 @@ const RawJSONSettings = ({ settings, updateSettings }: VisualizationSettingsProp
 };
 
 export const RawJSONComponent: VISComponentType<RawJSONVisProps> = {
-  displayName: 'RawJSONVis',
   component: RawJSONVis,
-  description: '(Raw) Data Export',
   settingsComponent: RawJSONSettings,
   settings: settings,
   exportImage: () => {
diff --git a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
index 4bad7ce70..4cba54b9c 100644
--- a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
+++ b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
@@ -41,8 +41,6 @@ const settings: SemSubstrProps = {
   dataPanels: [],
 };
 
-const displayName = 'SemanticSubstratesVis';
-
 const VisSemanticSubstrates = forwardRef<VisSemanticSubstratesHandle, VisualizationPropTypes<SemSubstrProps>>(
   ({ data, graphMetadata, settings, updateSettings }, refExternal) => {
     // for sizing the vis
@@ -936,8 +934,6 @@ const SemSubstrSettings = ({ settings, updateSettings, graphMetadata }: Visualiz
 const SemSubstrVisRef = React.createRef<{ exportImageInternal: () => void }>();
 
 export const SemSubstrVisComponent: VISComponentType<SemSubstrProps> = {
-  displayName: displayName,
-  description: 'Node/Edge Attribute Exploration',
   component: React.forwardRef((props: VisualizationPropTypes<SemSubstrProps>, ref) => (
     <VisSemanticSubstrates {...props} ref={SemSubstrVisRef} />
   )),
diff --git a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
index 23441c163..d4b7e8026 100644
--- a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
+++ b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
@@ -242,8 +242,6 @@ const TableSettings = ({ settings, graphMetadata, updateSettings }: Visualizatio
 const tableRef = React.createRef<{ exportImageInternal: () => void }>();
 
 export const TableComponent: VISComponentType<TableProps> = {
-  displayName: 'TableVis',
-  description: 'Node Attribute Statistics and Details',
   component: React.forwardRef((props: VisualizationPropTypes<TableProps>, ref) => <TableVis {...props} ref={tableRef} />),
   settingsComponent: TableSettings,
   settings: settings,
diff --git a/libs/shared/lib/vis/visualizations/vis1D/Vis1D.tsx b/libs/shared/lib/vis/visualizations/vis1D/Vis1D.tsx
index 42f8391d8..739c992f5 100644
--- a/libs/shared/lib/vis/visualizations/vis1D/Vis1D.tsx
+++ b/libs/shared/lib/vis/visualizations/vis1D/Vis1D.tsx
@@ -155,8 +155,6 @@ const Vis1DSettings = ({ settings, graphMetadata, updateSettings }: Visualizatio
 const Vis1DRef = React.createRef<Vis1DVisHandle>();
 
 export const Vis1DComponent: VISComponentType<Vis1DProps> = {
-  displayName: '1Dvis',
-  description: 'Basic charts',
   component: React.forwardRef((props: VisualizationPropTypes<Vis1DProps>, ref) => <Vis1D {...props} ref={Vis1DRef} />),
   settingsComponent: Vis1DSettings,
   settings: defaultSettings,
-- 
GitLab