From c289e53e420598ba97a0d535b02fd0175d661c63 Mon Sep 17 00:00:00 2001
From: Vukile Langa <vukilelanga@me.com>
Date: Sun, 9 Jun 2024 16:39:57 +0200
Subject: [PATCH] fix(components): use sibling figcaption

---
 wax-prosemirror-services/src/ImageService/AltComponent.js  | 6 ++++--
 .../src/ImageService/LongDescComponent.js                  | 7 ++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/wax-prosemirror-services/src/ImageService/AltComponent.js b/wax-prosemirror-services/src/ImageService/AltComponent.js
index 8f6212426..c7354b0b4 100644
--- a/wax-prosemirror-services/src/ImageService/AltComponent.js
+++ b/wax-prosemirror-services/src/ImageService/AltComponent.js
@@ -7,9 +7,9 @@ const StyledInputAlt = styled.input`
   background: #e2ebff;
   border: none;
   box-sizing: border-box;
-  width: 240px;
   min-height: 20px;
   padding: 4px;
+  width: 240px;
 
   &:focus {
     outline: none;
@@ -50,13 +50,15 @@ export default ({ setPosition, position }) => {
         `[data-fileid='${selection.node.attrs.fileid}']`,
       );
 
-    const figCaption = document.getElementsByTagName('figcaption')[0];
+    const siblings = [...image.parentElement.children];
+    const figCaption = siblings.find(s => s.localName === 'figcaption');
 
     if (!image || !figCaption) return;
     const imagePosition = image.getBoundingClientRect();
     const figCaptionPosition = figCaption.getBoundingClientRect().height - 5;
     const left = imagePosition.left - WaxSurface.left;
     const top = imagePosition.bottom - WaxSurface.top - figCaptionPosition;
+
     setPosition({ ...position, left, top });
   }, [position.left, position.top]);
 
diff --git a/wax-prosemirror-services/src/ImageService/LongDescComponent.js b/wax-prosemirror-services/src/ImageService/LongDescComponent.js
index 4928a75e0..a1e4cb822 100644
--- a/wax-prosemirror-services/src/ImageService/LongDescComponent.js
+++ b/wax-prosemirror-services/src/ImageService/LongDescComponent.js
@@ -53,13 +53,14 @@ export default ({ setPosition, position }) => {
         `[data-fileid='${selection.node.attrs.fileid}']`,
       );
 
-    const figCaption = document.getElementsByTagName('figcaption')[0];
+    const siblings = [...image.parentElement.children];
+    const figCaption = siblings.find(s => s.localName === 'figcaption');
 
     if (!image || !figCaption) return;
     const imagePosition = image.getBoundingClientRect();
-    const figCaptionPosition = figCaption.getBoundingClientRect().bottom + 5;
+    const figCaptionPosition = figCaption.getBoundingClientRect().height + 10;
     const left = imagePosition.left - WaxSurface.left;
-    const top = figCaptionPosition - WaxSurface.top;
+    const top = imagePosition.bottom - WaxSurface.top + figCaptionPosition;
     setPosition({ ...position, left, top });
   }, [position.left, position.top]);
 
-- 
GitLab