From e1c684eaefb40e0908daa02e488fe53deb28f55f Mon Sep 17 00:00:00 2001 From: Victor Seiji Hariki Date: Sat, 3 Dec 2022 22:51:31 -0300 Subject: [PATCH] fix resource manager persistence persistence only worked once per image due to lack of wait load in image loading from storage Signed-off-by: Victor Seiji Hariki --- js/ui/tool/stamp.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/js/ui/tool/stamp.js b/js/ui/tool/stamp.js index 70c507b..66e0c4b 100644 --- a/js/ui/tool/stamp.js +++ b/js/ui/tool/stamp.js @@ -414,27 +414,28 @@ const stampTool = () => state.ctxmenu.resourceList = resourceList; // Performs resource fetch from local storage - { + (async () => { const storageResources = localStorage.getItem( "tools.stamp.resources" ); if (storageResources) { const parsed = JSON.parse(storageResources); state.resources.push( - ...parsed.map((resource) => { - const image = document.createElement("img"); - image.src = resource.src; + ...(await Promise.all( + parsed.map((resource) => { + const image = document.createElement("img"); + image.src = resource.src; - return { - id: resource.id, - name: resource.name, - image, - }; - }) + return new Promise((resolve, reject) => { + image.onload = () => + resolve({id: resource.id, name: resource.name, image}); + }); + }) + )) ); syncResources(); } - } + })(); } }, populateContextMenu: (menu, state) => {