From 68d8e62a5ca81110dbd419ac8921d70abcfd60cb Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:32:52 +0530 Subject: [PATCH] fix: Share modal not working in year-in-review (#13079) --- .../components-next/year-in-review/ShareModal.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue b/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue index 92f45a12b..12a556b0e 100644 --- a/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue +++ b/app/javascript/dashboard/components-next/year-in-review/ShareModal.vue @@ -56,15 +56,19 @@ const generateImage = async () => { const bgColor = colorMap[props.slideBackground] || '#ffffff'; const dataUrl = await toPng(slideElement, { - quality: 2, pixelRatio: 1.2, backgroundColor: bgColor, + // Skip font/CSS embedding to avoid CORS issues with CDN stylesheets + // See: https://github.com/bubkoo/html-to-image/issues/49#issuecomment-762222100 + fontEmbedCSS: '', + cacheBust: true, }); const img = new Image(); img.src = dataUrl; - await new Promise(resolve => { + await new Promise((resolve, reject) => { img.onload = resolve; + img.onerror = reject; }); const finalCanvas = document.createElement('canvas');