Skip to content
Snippets Groups Projects
Commit 5fcfd0ec authored by Miłosz Grocholewski's avatar Miłosz Grocholewski
Browse files

perf(vector-map): remove unnecessary filtering on array

parent 4e2758d5
No related branches found
No related tags found
2 merge requests!271Resolve MIN-39 "Feat/ glyphs",!259Resolve MIN-35 "hypothetical option"
Pipeline #96185 passed
...@@ -33,12 +33,15 @@ export const useOlMapReactionsLayer = ({ ...@@ -33,12 +33,15 @@ export const useOlMapReactionsLayer = ({
const shapes = useSelector(bioShapesSelector); const shapes = useSelector(bioShapesSelector);
const lineTypes = useSelector(lineTypesSelector); const lineTypes = useSelector(lineTypesSelector);
const elements = useMemo(() => { const elements: Array<MapElement> = useMemo(() => {
if (modelElements) { if (!modelElements || !shapes) return [];
return modelElements.content.map(element => {
const shape = shapes.find(bioShape => bioShape.sboTerm === element.sboTerm); const validElements: Array<MapElement> = [];
if (shape) { modelElements.content.forEach(element => {
return new MapElement({ const shape = shapes.find(bioShape => bioShape.sboTerm === element.sboTerm);
if (shape) {
validElements.push(
new MapElement({
shapes: shape.shapes, shapes: shape.shapes,
x: element.x, x: element.x,
y: element.y, y: element.y,
...@@ -62,18 +65,15 @@ export const useOlMapReactionsLayer = ({ ...@@ -62,18 +65,15 @@ export const useOlMapReactionsLayer = ({
modifications: element.modificationResidues, modifications: element.modificationResidues,
lineTypes, lineTypes,
bioShapes: shapes, bioShapes: shapes,
}); }),
} );
return undefined; }
}); });
} return validElements;
return [];
}, [modelElements, shapes, pointToProjection, mapInstance, lineTypes]); }, [modelElements, shapes, pointToProjection, mapInstance, lineTypes]);
const features = useMemo(() => { const features = useMemo(() => {
return elements return elements.map(element => element.multiPolygonFeature);
.filter((element): element is MapElement => element !== undefined)
.map(element => element.multiPolygonFeature);
}, [elements]); }, [elements]);
const vectorSource = useMemo(() => { const vectorSource = useMemo(() => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment