From d9f396e297bfb3d41e1fe15f4b143d9916001d94 Mon Sep 17 00:00:00 2001
From: Sophie Zhang <sophie_zhang@brown.edu>
Date: Fri, 25 Aug 2023 12:51:16 -0400
Subject: convert url to base64, ensure img is loaded

---
 .../views/nodes/generativeFill/GenerativeFill.tsx  | 31 +++++++++++++---------
 1 file changed, 19 insertions(+), 12 deletions(-)

(limited to 'src/client/views/nodes/generativeFill/GenerativeFill.tsx')

diff --git a/src/client/views/nodes/generativeFill/GenerativeFill.tsx b/src/client/views/nodes/generativeFill/GenerativeFill.tsx
index 9c03600cf..1400d0f6d 100644
--- a/src/client/views/nodes/generativeFill/GenerativeFill.tsx
+++ b/src/client/views/nodes/generativeFill/GenerativeFill.tsx
@@ -166,20 +166,27 @@ const GenerativeFill = ({ imageEditorOpen, imageEditorSource, imageRootDoc, addD
 
     // first load
     useEffect(() => {
-        if (!imageEditorSource || imageEditorSource === '') return;
-        const img = new Image();
-        img.src = imageEditorSource;
-        currImg.current = img;
-        originalImg.current = img;
-        img.onload = () => {
-            const imgWidth = img.naturalWidth;
-            const imgHeight = img.naturalHeight;
-            const scale = Math.min(canvasSize / imgWidth, canvasSize / imgHeight);
-            const width = imgWidth * scale;
-            const height = imgHeight * scale;
-            setCanvasDims({ width, height });
+        const loadInitial = async () => {
+            if (!imageEditorSource || imageEditorSource === '') return;
+            const img = new Image();
+            const res = await ImageUtility.urlToBase64(imageEditorSource);
+            if (!res) return;
+            img.src = `data:image/png;base64,${res}`;
+
+            img.onload = () => {
+                currImg.current = img;
+                originalImg.current = img;
+                const imgWidth = img.naturalWidth;
+                const imgHeight = img.naturalHeight;
+                const scale = Math.min(canvasSize / imgWidth, canvasSize / imgHeight);
+                const width = imgWidth * scale;
+                const height = imgHeight * scale;
+                setCanvasDims({ width, height });
+            };
         };
 
+        loadInitial();
+
         // cleanup
         return () => {
             setInput('');
-- 
cgit v1.2.3-70-g09d2

