From dc08934eebe9452496a39b2f315a886a3b08973e Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Thu, 4 Apr 2024 10:28:46 +1100 Subject: [PATCH] auto load custom theme when saving --- src/seqta/ui/Themes.ts | 8 ++++++-- src/seqta/utils/listeners/MessageListener.ts | 16 +++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/seqta/ui/Themes.ts b/src/seqta/ui/Themes.ts index dba21cd9..d68e6ef4 100644 --- a/src/seqta/ui/Themes.ts +++ b/src/seqta/ui/Themes.ts @@ -76,7 +76,9 @@ export const saveTheme = async (theme: CustomThemeBase64) => { ), }; - console.log('Theme to save:', updatedTheme) + disableTheme(); + + console.debug('Theme to save:', updatedTheme) await localforage.setItem(updatedTheme.id, updatedTheme); await localforage.getItem('customThemes').then((themes: unknown) => { @@ -90,7 +92,7 @@ export const saveTheme = async (theme: CustomThemeBase64) => { localforage.setItem('customThemes', [updatedTheme.id]); } }); - console.log('Theme saved successfully!'); + console.debug('Theme saved successfully!'); } catch (error) { console.error('Error saving theme:', error); } @@ -256,6 +258,8 @@ export const setTheme = async (themeId: string) => { const enabledTheme = await browser.storage.local.get('selectedTheme') as { selectedTheme: string }; const theme = await localforage.getItem(themeId) as CustomTheme; + console.debug('Loading theme', theme) + // Remove the currently enabled theme if (enabledTheme.selectedTheme) { const currentTheme = await localforage.getItem(enabledTheme.selectedTheme) as CustomTheme; diff --git a/src/seqta/utils/listeners/MessageListener.ts b/src/seqta/utils/listeners/MessageListener.ts index 24a5aec6..51473bc0 100644 --- a/src/seqta/utils/listeners/MessageListener.ts +++ b/src/seqta/utils/listeners/MessageListener.ts @@ -1,7 +1,7 @@ import browser from 'webextension-polyfill' import { MenuOptionsOpen, OpenMenuOptions, OpenWhatsNewPopup, closeSettings } from '../../../SEQTA'; -import { UpdateImageData, UpdateThemePreview, deleteTheme, disableTheme, getAvailableThemes, getTheme, saveTheme, setTheme } from '../../ui/Themes'; +import { UpdateThemePreview, deleteTheme, disableTheme, getAvailableThemes, getTheme, saveTheme, setTheme } from '../../ui/Themes'; import { CloseThemeCreator, OpenThemeCreator } from '../../ui/ThemeCreator'; export class MessageHandler { @@ -18,16 +18,18 @@ export class MessageHandler { case 'UpdateThemePreview': if (request?.save == true) { - saveTheme(request.body).then(() => { - setTheme(request.body.themeID).then(() => { - sendResponse({ status: 'success' }); - }); - }); + const save = async () => { + console.log('Saving theme:', request.body) + await saveTheme(request.body) + await setTheme(request.body.id) + sendResponse({ status: 'success' }); + } + save() } else { UpdateThemePreview(request.body); sendResponse({ status: 'success' }); } - break; + return true; case 'GetTheme': getTheme(request.body.themeID).then((theme) => {