diff options
| author | Fuwn <[email protected]> | 2023-11-11 18:16:33 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-11-11 18:16:33 -0800 |
| commit | 7b5a2b4f00dd6c9c7f0cc1c3922d5df3ea353110 (patch) | |
| tree | e7ee907e857959ff710b631db11399d34438fd79 /src/lib/Tools | |
| parent | fix(wrapped): createObjectURL support mobile (diff) | |
| download | due.moe-7b5a2b4f00dd6c9c7f0cc1c3922d5df3ea353110.tar.xz due.moe-7b5a2b4f00dd6c9c7f0cc1c3922d5df3ea353110.zip | |
refactor(wrapped): move to modern-screenshot
Diffstat (limited to 'src/lib/Tools')
| -rw-r--r-- | src/lib/Tools/Wrapped.svelte | 73 |
1 files changed, 39 insertions, 34 deletions
diff --git a/src/lib/Tools/Wrapped.svelte b/src/lib/Tools/Wrapped.svelte index 438e37bb..ed9f2060 100644 --- a/src/lib/Tools/Wrapped.svelte +++ b/src/lib/Tools/Wrapped.svelte @@ -12,8 +12,7 @@ import lastPruneTimes from '../../stores/lastPruneTimes.js'; import manga from '../../stores/manga.js'; import Error from '$lib/Error.svelte'; - import domtoimage from 'dom-to-image'; - import type { HTMLAttributeAnchorTarget } from 'svelte/elements.js'; + import { domToBlob } from 'modern-screenshot'; export let user: AniListAuthorisation; @@ -112,38 +111,44 @@ } if (element !== null) { - domtoimage - .toBlob(element, { - bgcolor: transparency ? undefined : dark ? '#0b1622' : '#edf1f5' - }) - .then((blob) => { - const downloadWrapper = document.createElement('a'); - const wrappedImageButton = document.getElementById( - 'wrapped-image-download' - ) as HTMLAnchorElement; - const image = document.createElement('img'); - const object = (window.URL || window.webkitURL || window || {}).createObjectURL(blob); - - // downloadWrapper.download = `due_dot_moe_wrapped_${dark ? 'dark' : 'light'}.png`; - downloadWrapper.href = object; - downloadWrapper.target = '_blank'; - image.src = object; - - downloadWrapper.appendChild(image); - - if (wrappedImageButton !== null) { - wrappedImageButton.href = object; - } - - const wrappedFinal = document.getElementById('wrapped-final'); - - if (wrappedFinal !== null) { - wrappedFinal.innerHTML = ''; - wrappedFinal.appendChild(downloadWrapper); - } - - downloadWrapper.click(); - }); + domToBlob(element, { + backgroundColor: transparency ? undefined : dark ? '#0b1622' : '#edf1f5', + quality: 1, + scale: 2, + fetch: { + requestInit: { + mode: 'cors' + }, + bypassingCache: true + } + }).then((blob) => { + const downloadWrapper = document.createElement('a'); + const wrappedImageButton = document.getElementById( + 'wrapped-image-download' + ) as HTMLAnchorElement; + const image = document.createElement('img'); + const object = (window.URL || window.webkitURL || window || {}).createObjectURL(blob); + + // downloadWrapper.download = `due_dot_moe_wrapped_${dark ? 'dark' : 'light'}.png`; + downloadWrapper.href = object; + downloadWrapper.target = '_blank'; + image.src = object; + + downloadWrapper.appendChild(image); + + if (wrappedImageButton !== null) { + wrappedImageButton.href = object; + } + + const wrappedFinal = document.getElementById('wrapped-final'); + + if (wrappedFinal !== null) { + wrappedFinal.innerHTML = ''; + wrappedFinal.appendChild(downloadWrapper); + } + + downloadWrapper.click(); + }); await new Promise((resolve) => setTimeout(resolve, 1000)); |