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) {
break;
}
if (!customElementImgCache[config.customType]) {
const img = document.createElement("img");
img.id = config.customType;
if (typeof config.svg === "string") {
if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.src = config.svg;
} else {
img.id = element.id;
customElementImgCache[img.id] = img;
}
} else if (typeof config.svg === "function") {
const svg = config.svg(element);
if (svg instanceof Promise) {
svg.then((res) => {
if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.id = element.id;
img.src = res;
customElementImgCache[img.id] = img;
context.drawImage(
customElementImgCache[config.customType],
customElementImgCache[element.id],
0,
0,
element.width,
element.height,
);
}
});
} else {
} else if (!customElementImgCache[element.id]) {
const img = document.createElement("img");
img.id = element.id;
img.src = svg;
}
}
customElementImgCache[img.id] = img;
}
}
context.drawImage(
customElementImgCache[config.customType],
customElementImgCache[element.id],
0,
0,
element.width,
element.height,
);
break;
}
default: {