From 4f8bc22934c9a8e9d8cbd2cc6f246e048e347cda Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrian=20Or=C5=82=C3=B3w?= <adrian.orlow@fishbrain.com>
Date: Tue, 16 Apr 2024 16:43:31 +0200
Subject: [PATCH] feat: rfc fixes

---
 .../GroupedOverlayAxes/GroupedOverlayAxes.components.tsx      | 4 +++-
 .../BioEntityDrawer/OverlayData/OverlayData.component.tsx     | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/components/Map/Drawer/BioEntityDrawer/OverlayData/GroupedOverlayAxes/GroupedOverlayAxes.components.tsx b/src/components/Map/Drawer/BioEntityDrawer/OverlayData/GroupedOverlayAxes/GroupedOverlayAxes.components.tsx
index c21e1dfa..de4e9208 100644
--- a/src/components/Map/Drawer/BioEntityDrawer/OverlayData/GroupedOverlayAxes/GroupedOverlayAxes.components.tsx
+++ b/src/components/Map/Drawer/BioEntityDrawer/OverlayData/GroupedOverlayAxes/GroupedOverlayAxes.components.tsx
@@ -1,5 +1,6 @@
 import { SIZE_OF_EMPTY_ARRAY } from '@/constants/common';
 import { MapOverlay } from '@/types/models';
+import { useMemo } from 'react';
 import { OverlayAxis } from '../OverlayAxis';
 import { OverlayDataAxis } from '../OverlayData.types';
 import { getAxesSortedByValue } from '../utils/getAxesSortedByValue';
@@ -12,6 +13,7 @@ interface Props {
 export const GroupedOverlayAxes = ({ overlay, axes }: Props): JSX.Element | null => {
   const { idObject, name } = overlay;
   const overlayAxes = axes.filter(axis => axis.overlayId === idObject);
+  const sortedAxes = useMemo(() => getAxesSortedByValue(overlayAxes), [overlayAxes]);
 
   if (overlayAxes.length === SIZE_OF_EMPTY_ARRAY) {
     return null;
@@ -23,7 +25,7 @@ export const GroupedOverlayAxes = ({ overlay, axes }: Props): JSX.Element | null
         {name}
       </div>
       <div className="my-1 h-[1px] w-full bg-divide" />
-      {getAxesSortedByValue(overlayAxes).map(axis => (
+      {sortedAxes.map(axis => (
         <OverlayAxis key={axis.title} axis={axis} />
       ))}
     </div>
diff --git a/src/components/Map/Drawer/BioEntityDrawer/OverlayData/OverlayData.component.tsx b/src/components/Map/Drawer/BioEntityDrawer/OverlayData/OverlayData.component.tsx
index 6ee13184..bc52903a 100644
--- a/src/components/Map/Drawer/BioEntityDrawer/OverlayData/OverlayData.component.tsx
+++ b/src/components/Map/Drawer/BioEntityDrawer/OverlayData/OverlayData.component.tsx
@@ -1,5 +1,6 @@
 import { ZERO } from '@/constants/common';
 import { overlaysOpenedSelector } from '@/redux/overlayBioEntity/overlayBioEntity.selector';
+import { useMemo } from 'react';
 import { useSelector } from 'react-redux';
 import { GroupedOverlayAxes } from './GroupedOverlayAxes';
 import { OverlayAxis } from './OverlayAxis';
@@ -19,6 +20,7 @@ export const OverlayData = ({
   const axes = useOverlaysAxes({ isShowOverlayBioEntityName });
   const uniqueAxes = getUniqueAxes(axes);
   const openedOverlays = useSelector(overlaysOpenedSelector);
+  const sortedAxes = useMemo(() => getAxesSortedByValue(uniqueAxes), [uniqueAxes]);
 
   if (uniqueAxes.length === ZERO) {
     return null;
@@ -26,7 +28,7 @@ export const OverlayData = ({
 
   const overlaysAxesContent = (
     <div className="flex flex-col gap-2 rounded-lg border border-divide p-4">
-      {getAxesSortedByValue(uniqueAxes).map(axis => (
+      {sortedAxes.map(axis => (
         <OverlayAxis key={axis.title} axis={axis} />
       ))}
     </div>
-- 
GitLab