From 7f220266c3336901f004067b79b39d720963ef9e Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Thu, 4 Apr 2024 10:17:25 +1100 Subject: [PATCH] separate image conversions --- src/seqta/ui/Themes.ts | 23 ++--------------------- src/seqta/utils/imageConversions.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 src/seqta/utils/imageConversions.ts diff --git a/src/seqta/ui/Themes.ts b/src/seqta/ui/Themes.ts index 50f101ac..dba21cd9 100644 --- a/src/seqta/ui/Themes.ts +++ b/src/seqta/ui/Themes.ts @@ -1,6 +1,7 @@ import browser from 'webextension-polyfill' import localforage from 'localforage'; import { CustomImage, CustomImageBase64, CustomTheme, CustomThemeBase64, ThemeList } from '../../interface/types/CustomThemes'; +import { base64toblobURL } from '../utils/imageConversions'; const imageData: Record = {}; @@ -152,7 +153,7 @@ export const UpdateImageData = (imageData2: { id: string; base64: string }) => { const { id, base64 } = imageData2; if (imageData[id]) { - imageData[id].url = base64toblob(base64); + imageData[id].url = base64toblobURL(base64); const { variableName } = imageData[id]; document.documentElement.style.setProperty('--' + variableName, `url(${imageData[id].url})`); } @@ -172,26 +173,6 @@ function removeImageFromDocument(variableName: string) { document.documentElement.style.removeProperty('--' + variableName); } -export function base64toblob(base64: string) { - // Extract base64 data from the data URI - const base64Index = base64.indexOf(',') + 1; - const imageBase64 = base64.substring(base64Index); - - // Convert base64 to blob - const byteCharacters = atob(imageBase64); - const byteNumbers = new Uint8Array(byteCharacters.length); - for (let i = 0; i < byteCharacters.length; i++) { - byteNumbers[i] = byteCharacters.charCodeAt(i); - } - const byteArray = new Uint8Array(byteNumbers); - const blob = new Blob([byteArray], { type: 'image/png' }); - - // Convert blob to blob URL - const imageUrl = URL.createObjectURL(blob); - - return imageUrl; -} - const applyTheme = async (theme: CustomTheme) => { let CustomCSS = ''; let CustomImages: CustomImage[] = []; diff --git a/src/seqta/utils/imageConversions.ts b/src/seqta/utils/imageConversions.ts new file mode 100644 index 00000000..334952f3 --- /dev/null +++ b/src/seqta/utils/imageConversions.ts @@ -0,0 +1,19 @@ +export function base64toblobURL(base64: string) { + // Extract base64 data from the data URI + const base64Index = base64.indexOf(',') + 1; + const imageBase64 = base64.substring(base64Index); + + // Convert base64 to blob + const byteCharacters = atob(imageBase64); + const byteNumbers = new Uint8Array(byteCharacters.length); + for (let i = 0; i < byteCharacters.length; i++) { + byteNumbers[i] = byteCharacters.charCodeAt(i); + } + const byteArray = new Uint8Array(byteNumbers); + const blob = new Blob([byteArray], { type: 'image/png' }); + + // Convert blob to blob URL + const imageUrl = URL.createObjectURL(blob); + + return imageUrl; +}