diff --git a/src/components/RightMenu/RightMenu.tsx b/src/components/RightMenu/RightMenu.tsx
index c4323e1549b0616411ba6a4fc0bdd45ea5306180..10a6ec8ed0ecdbe0eaf8253e33f6db95ce478205 100644
--- a/src/components/RightMenu/RightMenu.tsx
+++ b/src/components/RightMenu/RightMenu.tsx
@@ -4,21 +4,21 @@ import * as React from "react";
 import { RightMenuProps } from "./RightMenuProps";
 import "./RightMenu.scss";
 const RightMenu: React.FC<RightMenuProps> = (props: RightMenuProps) => {
-  const { items, width, selectedItemProp:selectedItem=0 } = props;
-  //const [selectedItem, setSelectedItem] = React.useState<number>(selectedItemProp);
-/*   const handleChangeSelectedItem = (newIndex: number) =>
-    setSelectedItem(newIndex); */
+  const { items, width, selectedItemProp: selectedItem = 0 } = props;
+
   const handleClickAnchor = (
     e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
     onClick: Function | undefined,
     id: number
   ) => {
     onClick?.();
-    //handleChangeSelectedItem(id);
+
   };
+
+  const finalSelectedId = selectedItem;
   return (
     <List
-   // className="section-container"
+      // className="section-container"
       sx={{ width: "100%", maxWidth: width, bgcolor: "background.paper" }}
       component="nav"
       aria-labelledby="nested-list-subheader"
@@ -32,14 +32,13 @@ const RightMenu: React.FC<RightMenuProps> = (props: RightMenuProps) => {
         {items &&
           items.map(({ isSelected, label, onClick, referTo, id }, index) => {
             const classNameForAnchor: string =
-              selectedItem === id
+              finalSelectedId === id
                 ? "right-menu-anchor-item selected"
                 : "right-menu-anchor-item";
             return (
               <li key={index} style={{ listStyle: "none", margin: 0 }}>
                 <a
                   className={classNameForAnchor}
-                  //href={`${baseUrl}/#${referTo}`}
                   href={`${referTo}`}
                   onClick={(e) => handleClickAnchor(e, onClick, id)}
                 >
diff --git a/src/components/RightMenu/RightMenuProps.ts b/src/components/RightMenu/RightMenuProps.ts
index f2818b8f502581f4761e64f68199e09dc59a8ad1..e8d14440ffd7721c8ad8a5818378199fbb01981d 100644
--- a/src/components/RightMenu/RightMenuProps.ts
+++ b/src/components/RightMenu/RightMenuProps.ts
@@ -11,4 +11,5 @@ export interface RightMenuProps {
     width: string;
     baseUrl?: string;
     selectedItemProp?:number;
+    setSelected?:Function;
 }
\ No newline at end of file
diff --git a/src/pages/api/AvatarApi.jsx b/src/pages/api/AvatarApi.jsx
index 2a7be2b834fcacbeb21d6cba653bc471cb777844..4a7722572fe1683b4ee14f2aeadd811629dbde73 100644
--- a/src/pages/api/AvatarApi.jsx
+++ b/src/pages/api/AvatarApi.jsx
@@ -9,6 +9,7 @@ import Alert from "@mui/material/Alert";
 import PropsTableApi from "./PropsTableApi";
 import { AvatarAPIPropsRows } from "../../data/AvatarAPIPropsRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const rightMenuItems = [
   {
@@ -24,6 +25,15 @@ const rightMenuItems = [
 ];
 
 const AvatarApi = (props) => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", scrollHandler);
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -49,7 +59,12 @@ const AvatarApi = (props) => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/DropzoneApi.tsx b/src/pages/api/DropzoneApi.tsx
index 25f25b57be1291acc77fa4cb70371db2f5c1b2b5..dc17bba899520f85d49522fdb57d613087b665db 100644
--- a/src/pages/api/DropzoneApi.tsx
+++ b/src/pages/api/DropzoneApi.tsx
@@ -9,6 +9,7 @@ import Alert from "@mui/material/Alert";
 import PropsTableApi from "./PropsTableApi";
 import { DropzoneAPIPropsRows } from "../../data/DropzoneAPIPropsRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
+import { scrollHandler } from "../../utils/scrollHandler";
 const rightMenuItems = [
   {
     id: 0,
@@ -23,6 +24,19 @@ const rightMenuItems = [
 ];
 
 const DropzoneApi = () => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
+
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -53,7 +67,12 @@ const DropzoneApi = () => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/FileCardApi.tsx b/src/pages/api/FileCardApi.tsx
index eb80d007cbc47ef4eea6799e36087a3560ed62c4..129261c0bfba6ca2f5b6acb6ae93526e465a2b20 100644
--- a/src/pages/api/FileCardApi.tsx
+++ b/src/pages/api/FileCardApi.tsx
@@ -8,6 +8,7 @@ import MainParagraph from "../../components/paragraph-main/MainParagraph";
 import RightMenu from "../../components/RightMenu/RightMenu";
 import AnchorToTab from "../../components/util-components/AnchorToTab";
 import { FileCardAPIPropsRows } from "../../data/FileCardAPIPropsRows";
+import { scrollHandler } from "../../utils/scrollHandler";
 import PropsTableApi from "./PropsTableApi";
 
 const rightMenuItems = [
@@ -24,6 +25,18 @@ const rightMenuItems = [
 ];
 
 const FileCardApi = () => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -52,7 +65,12 @@ const FileCardApi = () => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+      <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/FileInputButtonApi.jsx b/src/pages/api/FileInputButtonApi.jsx
index 4cc5a8d2c71f89b916db9a4237ce97f32e840873..81c97a142e38ec02a8c9a73de0ab0ea31c89551c 100644
--- a/src/pages/api/FileInputButtonApi.jsx
+++ b/src/pages/api/FileInputButtonApi.jsx
@@ -9,6 +9,7 @@ import Alert from "@mui/material/Alert";
 import PropsTableApi from "./PropsTableApi";
 import { FileInputButtonPropsRows } from "../../data/FileInputButtonPropsRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const rightMenuItems = [
   {
@@ -23,6 +24,18 @@ const rightMenuItems = [
   },
 ];
 const FileInputButtonApi = (props) => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -55,7 +68,12 @@ const FileInputButtonApi = (props) => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/FileMosaicApi.jsx b/src/pages/api/FileMosaicApi.jsx
index 20d1ac3a52facfb185c08b143374dd5596c90de7..b13d06b074f65ed04742348b9a14de363a86abf2 100644
--- a/src/pages/api/FileMosaicApi.jsx
+++ b/src/pages/api/FileMosaicApi.jsx
@@ -8,6 +8,7 @@ import MainParagraph from "../../components/paragraph-main/MainParagraph";
 import RightMenu from "../../components/RightMenu/RightMenu";
 import AnchorToTab from "../../components/util-components/AnchorToTab";
 import { FileMosaicAPIPropsRows } from "../../data/FileMosaicAPIPropsRows";
+import { scrollHandler } from "../../utils/scrollHandler";
 import PropsTableApi from "./PropsTableApi";
 
 const rightMenuItems = [
@@ -23,6 +24,18 @@ const rightMenuItems = [
   },
 ];
 const FileMosaicApi = (props) => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -53,7 +66,12 @@ const FileMosaicApi = (props) => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/FullScreenApi.tsx b/src/pages/api/FullScreenApi.tsx
index 071c78db09b02923bc34d8b469dab1a1e38e8abc..5fc7ae70b087fb2aa2046f8404b156239dc97eb6 100644
--- a/src/pages/api/FullScreenApi.tsx
+++ b/src/pages/api/FullScreenApi.tsx
@@ -9,6 +9,7 @@ import Alert from "@mui/material/Alert";
 import PropsTableApi from "./PropsTableApi";
 import { FullScreenAPIPropRows } from "./FullScreenAPIPropRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const rightMenuItems = [
   {
@@ -24,6 +25,18 @@ const rightMenuItems = [
 ];
 
 const FullScreenApi = () => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -64,7 +77,12 @@ const FullScreenApi = () => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/ImagePreviewApi.tsx b/src/pages/api/ImagePreviewApi.tsx
index f9fefef48ead2540f4d074a7cc0fcff52e37bbfe..fa973d0a62831b5d86b9b7f4a6f3fd2944ed9c1f 100644
--- a/src/pages/api/ImagePreviewApi.tsx
+++ b/src/pages/api/ImagePreviewApi.tsx
@@ -11,6 +11,7 @@ import { ImagePreviewAPIPropsRows } from "./ImagePreviewAPIPropsRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
 import DescParagraph from "../../components/demo-components/desc-paragraph/DescParagraph";
 import CodeHighlight from "../../components/codeHighlight/CodeHighlight";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const rightMenuItems = [
   {
@@ -26,6 +27,18 @@ const rightMenuItems = [
 ];
 
 const ImagePreviewApi = () => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -66,7 +79,12 @@ const ImagePreviewApi = () => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/api/VideoPreviewApi.tsx b/src/pages/api/VideoPreviewApi.tsx
index 3c6af3ec6ebb474f1e21b572124ea80d47e865da..775f9f6d3690e3bcafdcf53a4c6341efde19bf03 100644
--- a/src/pages/api/VideoPreviewApi.tsx
+++ b/src/pages/api/VideoPreviewApi.tsx
@@ -11,6 +11,7 @@ import { VideoPreviewAPIPropsRows } from "./VideoPreviewAPIPropsRows";
 import MainParagraph from "../../components/paragraph-main/MainParagraph";
 import DescParagraph from "../../components/demo-components/desc-paragraph/DescParagraph";
 import CodeHighlight from "../../components/codeHighlight/CodeHighlight";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const rightMenuItems = [
   {
@@ -26,6 +27,18 @@ const rightMenuItems = [
 ];
 
 const VideoPreviewApi = () => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -66,7 +79,12 @@ const VideoPreviewApi = () => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/demo/FileCardDemoPage.jsx b/src/pages/demo/FileCardDemoPage.jsx
index c4c96d3f8c74a5093e7d432fd78e9ec2a2ab64a2..30cad0d1e0e2f61ed263342dad20613e813cd3ed 100644
--- a/src/pages/demo/FileCardDemoPage.jsx
+++ b/src/pages/demo/FileCardDemoPage.jsx
@@ -25,8 +25,22 @@ import DemoFileCardActions from "../../components/demo-components/filemosaic-dem
 import CodeJSFileCardActions from "../../components/demo-components/filemosaic-demo/CodeJSFileCardActions";
 import DemoFileMosaicSmartImgFit from "../../components/demo-components/filemosaic-demo/DemoFileMosaicSmartImgFit";
 import CodeJSFileMosaicSmartImgFit from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicSmartImgFit";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const FileCardDemoPage = (props) => {
+  const [selectedItem, setSelectedItem] = React.useState(0);
+
+  React.useEffect(() => {
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
+    return () => {
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
+    };
+  }, []);
+
   return (
     <React.Fragment>
       <MainContentContainer>
@@ -74,7 +88,10 @@ const FileCardDemoPage = (props) => {
             <CodeHighlight>{`<FileInputButton/>`} </CodeHighlight>
             component for allowing the user to select files. For further
             information of this component check out the{" "}
-            <AnchorToTab href="/components/fileinputbutton">FileInputButton</AnchorToTab> page.
+            <AnchorToTab href="/components/fileinputbutton">
+              FileInputButton
+            </AnchorToTab>{" "}
+            page.
           </Alert>
           <br />
           <Alert severity="info">
@@ -374,7 +391,12 @@ const FileCardDemoPage = (props) => {
         </section>
       </MainContentContainer>
       <RightMenuContainer>
-        <RightMenu width="240px" items={rightMenuItems} />
+        <RightMenu
+          width="240px"
+          items={rightMenuItems}
+          selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
+        />
       </RightMenuContainer>
     </React.Fragment>
   );
diff --git a/src/pages/demo/FileMosaicDemoPage.jsx b/src/pages/demo/FileMosaicDemoPage.jsx
index f66d0d61e645686d8b582ae1fa7d0208e458d59c..f879a6cef50c34065d885c04056ebc90aa240cef 100644
--- a/src/pages/demo/FileMosaicDemoPage.jsx
+++ b/src/pages/demo/FileMosaicDemoPage.jsx
@@ -29,94 +29,19 @@ import DemoFileCardActions from "../../components/demo-components/filemosaic-dem
 import CodeJSFileCardActions from "../../components/demo-components/filemosaic-demo/CodeJSFileCardActions";
 import DemoFileMosaicSmartImgFit from "../../components/demo-components/filemosaic-demo/DemoFileMosaicSmartImgFit";
 import CodeJSFileMosaicSmartImgFit from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicSmartImgFit";
+import { scrollHandler } from "../../utils/scrollHandler";
 
 const FileMosaicDemoPage = (props) => {
   const [selectedItem, setSelectedItem] = React.useState(0);
 
-  const scrollHandler = () => {
-    let menu = document.querySelector(".section-container");
-
-    const rightMenuItemsWithIdSec = rightMenuItems.map((x) => {
-      return {
-        ...x,
-        idSec: x.referTo.split("#")[1],
-      };
-    });
-
-    const arrElements = rightMenuItemsWithIdSec.map((x) => {
-      return { ...x, element: document.getElementById(x.idSec) };
-    });
-
-    let pos_menu = window.pageYOffset + menu.offsetHeight;
-    console.log("scrollHandler pos_menu", pos_menu);
-
-    const arrElementsEnhanced = arrElements.map((x) => {
-      const element = x.element;
-      const postElement = element.offsetTop + element.offsetHeight;
-      const distance = Math.round(postElement - pos_menu,0);
-      return { ...x, distance };
-    });
-
-    console.log(
-      "scrollHandler distances",
-      pos_menu,
-      arrElementsEnhanced.map(({ distance }) => distance)
-    );
-    console.log(
-      "scrollHandler ids",
-      pos_menu,
-      arrElementsEnhanced.map(({ id }) => id)
-    );
-    let min = Math.min(
-      ...arrElementsEnhanced
-        .map((x) => Math.round(x.distance, 0))
-        .filter((x) => x > 0)
-    );
-
-    console.log(
-      "prev foundelement distance min id",
-      min,
-      arrElementsEnhanced.map((y) => y.distance)
-    );
-
-    arrElementsEnhanced.forEach((x) => {
-      if (x.distance === min) {
-     /*    console.log(
-          "foundelement distance min id",
-          arrElementsEnhanced.map((y) => y.distance),
-          x.distance,
-          min,
-          x.id
-        ); */
-        setSelectedItem((_id) => {
-          return x.id;
-        });
-      }
-    });
-
-    console.log(
-      "distance min",
-      min,
-      arrElementsEnhanced.map((x) => x.distance)
-    );
-
-    // if (min === distance_A) setSelectedItem(0);
-    //document.querySelectorAll(".Menu .Item")[0].classList.add("Highlight");
-    // if (min === distance_B) setSelectedItem(1);
-    // if (min === distance_C) setSelectedItem(2);
-    /*  if (min === distance_B)
-      document.querySelectorAll(".Menu .Item")[1].classList.add("Highlight");
-    if (min === distance_C)
-      document.querySelectorAll(".Menu .Item")[2].classList.add("Highlight"); */
-  };
   React.useEffect(() => {
-    console.log("scrollHandler container");
-
-    window.addEventListener("scroll", scrollHandler);
-
+    window.addEventListener("scroll", () =>
+      scrollHandler(rightMenuItems, setSelectedItem)
+    );
     return () => {
-      console.log("foundelement", "removing event");
-      window.removeEventListener("scroll", scrollHandler);
+      window.removeEventListener("scroll", () =>
+        scrollHandler(rightMenuItems, setSelectedItem)
+      );
     };
   }, []);
 
@@ -488,6 +413,7 @@ const FileMosaicDemoPage = (props) => {
           width="240px"
           items={rightMenuItems}
           selectedItemProp={selectedItem}
+          setSelected={setSelectedItem}
         />
       </RightMenuContainer>
     </React.Fragment>
diff --git a/src/utils/scrollHandler.ts b/src/utils/scrollHandler.ts
new file mode 100644
index 0000000000000000000000000000000000000000..67725274acbd6901899b386eb32e2f3ddb90c634
--- /dev/null
+++ b/src/utils/scrollHandler.ts
@@ -0,0 +1,48 @@
+export type RightMenuItemComplete = {
+  id: number;
+  label: string;
+  referTo: string;
+  element?: HTMLElement;
+}
+
+export const scrollHandler = (rightMenuItems: RightMenuItemComplete[],
+  setSelectedItem: React.Dispatch<React.SetStateAction<number>>) => {
+
+  if (rightMenuItems.length === 0) return;
+  let menu: HTMLElement | null = document.querySelector(".section-container");
+  if (menu === null) return;
+
+  const rightMenuItemsWithIdSec = rightMenuItems.map((x) => {
+    return {
+      ...x,
+      idSec: x.referTo.split("#")[1],
+    };
+  });
+
+  const arrElements = rightMenuItemsWithIdSec.map((x) => {
+    return { ...x, element: document.getElementById(x.idSec) };
+  });
+
+  let pos_menu = window.pageYOffset + menu.offsetHeight;
+
+  const arrElementsEnhanced = arrElements.map((x) => {
+    const element = x.element;
+    const postElement = element ? element.offsetTop + element.offsetHeight : Infinity;
+    const distance = Math.round(postElement - pos_menu);
+    return { ...x, distance };
+  });
+
+  let min = Math.min(
+    ...arrElementsEnhanced
+      .map((x) => Math.round(x.distance))
+      .filter((x) => x > 0)
+  );
+
+  arrElementsEnhanced.forEach((x) => {
+    if (x.distance === min) {
+      setSelectedItem((_id) => {
+        return x.id;
+      });
+    }
+  });
+};