From ea264386b8df1f6b00eef18e3a348e4de0b03870 Mon Sep 17 00:00:00 2001 From: "Vink, S.A. (Sjoerd)" <s.a.vink@uu.nl> Date: Tue, 9 Jul 2024 16:35:52 +0200 Subject: [PATCH] feat(map_nodelink): fixed initialization issue --- .../mapvis/layers/nodelink-layer/NodeLinkLayer.tsx | 2 +- .../layers/nodelink-layer/NodeLinkOptions.tsx | 8 ++++---- .../lib/vis/visualizations/mapvis/mapvis.tsx | 14 +++++--------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkLayer.tsx b/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkLayer.tsx index 25677d432..bb7e24aca 100644 --- a/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkLayer.tsx +++ b/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkLayer.tsx @@ -58,7 +58,7 @@ export class NodeLinkLayer extends CompositeLayer<LayerProps> { new LineLayer({ id: layerId, data: edgeData, - visible: !config[label].hidden, + visible: !config[label]?.hidden, pickable: true, getWidth: (d: any) => config[label].width, getSourcePosition: (d: any) => getNodeLocation(d.from), diff --git a/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkOptions.tsx b/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkOptions.tsx index 07d7e97f8..21d5a5523 100644 --- a/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkOptions.tsx +++ b/libs/shared/lib/vis/visualizations/mapvis/layers/nodelink-layer/NodeLinkOptions.tsx @@ -72,10 +72,10 @@ export default function NodeLinkOptions({ settings, graphMetadata, updateSetting updateValue={(val: number[]) => updateSettings({ [nodeType]: { ...settings?.[nodeType], color: val } })} /> <Button - iconComponent={settings?.[nodeType].hidden ? <VisibilityOff /> : <Visibility />} + iconComponent={settings?.[nodeType]?.hidden ? <VisibilityOff /> : <Visibility />} variant="ghost" onClick={() => { - updateSettings({ [nodeType]: { ...settings?.[nodeType], hidden: !settings?.[nodeType].hidden as boolean } }); + updateSettings({ [nodeType]: { ...settings?.[nodeType], hidden: !settings?.[nodeType]?.hidden as boolean } }); }} /> </div> @@ -137,10 +137,10 @@ export default function NodeLinkOptions({ settings, graphMetadata, updateSetting updateValue={(val: number[]) => updateSettings({ [edgeType]: { ...settings?.[edgeType], color: val } })} /> <Button - iconComponent={settings?.[edgeType].hidden ? <VisibilityOff /> : <Visibility />} + iconComponent={settings?.[edgeType]?.hidden ? <VisibilityOff /> : <Visibility />} variant="ghost" onClick={() => { - updateSettings({ [edgeType]: { ...settings?.[edgeType], hidden: !settings?.[edgeType].hidden as boolean } }); + updateSettings({ [edgeType]: { ...settings?.[edgeType], hidden: !settings?.[edgeType]?.hidden as boolean } }); }} /> </div> diff --git a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx index 4ee0dabf5..7c0d3e54c 100644 --- a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx +++ b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx @@ -67,10 +67,8 @@ export const MapVis = ({ data, settings, handleSelect, graphMetadata }: Visualiz ); useEffect(() => { - const layerType = settings.layer ? layerTypes?.[settings.layer] : layerTypes.node; - setLayer({ - type: layerType, + type: settings.layer ? layerTypes?.[settings.layer] : layerTypes.nodelink, config: settings, }); }, [settings.layer]); @@ -80,10 +78,10 @@ export const MapVis = ({ data, settings, handleSelect, graphMetadata }: Visualiz const coordinateLookup: { [id: string]: Coordinate } = data.nodes.reduce( (acc, node) => { - const latitude = settings[node.label].lat ? (node?.attributes?.[settings[node.label].lat] as string) : undefined; - const longitude = settings[node.label].lon ? (node?.attributes?.[settings[node.label].lon] as string) : undefined; + const latitude = settings?.[node.label]?.lat ? (node?.attributes?.[settings[node.label].lat] as string) : undefined; + const longitude = settings?.[node.label]?.lon ? (node?.attributes?.[settings[node.label].lon] as string) : undefined; - if (!!latitude && !!longitude) { + if (latitude !== undefined && longitude !== undefined) { acc[node._id] = [parseFloat(longitude), parseFloat(latitude)]; } @@ -98,9 +96,7 @@ export const MapVis = ({ data, settings, handleSelect, graphMetadata }: Visualiz config: settings, selected: selected, hoverObject: hoverObject, - getNodeLocation: (d: string) => { - return coordinateLookup[d]; - }, + getNodeLocation: (d: string) => coordinateLookup[d], flyToBoundingBox: flyToBoundingBox, setLayerIds: (val: string[]) => setLayerIds(val), }); -- GitLab