cache svg with element id

This commit is contained in:
ad1992 2022-04-18 21:30:38 +05:30
parent d2d3599661
commit 4e75f10b2c

View File

@ -269,39 +269,46 @@ const drawElementOnCanvas = (
if (!config) { if (!config) {
break; break;
} }
if (!customElementImgCache[config.customType]) {
const img = document.createElement("img");
img.id = config.customType;
if (typeof config.svg === "string") { if (typeof config.svg === "string") {
if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.src = config.svg; img.src = config.svg;
} else { img.id = element.id;
customElementImgCache[img.id] = img;
}
} else if (typeof config.svg === "function") {
const svg = config.svg(element); const svg = config.svg(element);
if (svg instanceof Promise) { if (svg instanceof Promise) {
svg.then((res) => { svg.then((res) => {
if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.id = element.id;
img.src = res; img.src = res;
customElementImgCache[img.id] = img; customElementImgCache[img.id] = img;
context.drawImage( context.drawImage(
customElementImgCache[config.customType], customElementImgCache[element.id],
0, 0,
0, 0,
element.width, element.width,
element.height, element.height,
); );
}
}); });
} else { } else if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.id = element.id;
img.src = svg; img.src = svg;
}
}
customElementImgCache[img.id] = img; customElementImgCache[img.id] = img;
} }
}
context.drawImage( context.drawImage(
customElementImgCache[config.customType], customElementImgCache[element.id],
0, 0,
0, 0,
element.width, element.width,
element.height, element.height,
); );
break; break;
} }
default: { default: {