diff --git a/src/interface/components/ThemeCover.tsx b/src/interface/components/ThemeCover.tsx index 4d663d56..e5244026 100644 --- a/src/interface/components/ThemeCover.tsx +++ b/src/interface/components/ThemeCover.tsx @@ -36,11 +36,7 @@ export const ThemeCover: React.FC = ({ const handleDeleteClick = (e: React.MouseEvent) => { e.stopPropagation(); - if (downloaded) { - DeleteDownloadedTheme(theme.id); - } else { - onThemeDelete(theme.id); - } + onThemeDelete(theme.id); }; const handleShareClick = (event: React.MouseEvent) => { diff --git a/src/interface/components/ThemeSelector.tsx b/src/interface/components/ThemeSelector.tsx index 0588c43d..4f4439d1 100644 --- a/src/interface/components/ThemeSelector.tsx +++ b/src/interface/components/ThemeSelector.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState, useCallback, forwardRef, useImperativeHandle, ForwardRefExoticComponent, RefAttributes } from 'react'; -import { listThemes, deleteTheme, setTheme, disableTheme, getDownloadedThemes } from '../hooks/ThemeManagment'; +import { listThemes, deleteTheme, setTheme, disableTheme, getDownloadedThemes, sendThemeUpdate } from '../hooks/ThemeManagment'; import { DeleteDownloadedTheme } from '../pages/Store'; import { ThemeCover } from './ThemeCover'; import browser from 'webextension-polyfill'; @@ -85,8 +85,16 @@ const ThemeSelector: ForwardRefExoticComponent & const tempDownloadedThemes = await getDownloadedThemes(); setThemes(themes); - setDownloadedThemes(tempDownloadedThemes); + //setDownloadedThemes(tempDownloadedThemes); setSelectedTheme(selectedTheme ? selectedTheme : ''); + + console.log(tempDownloadedThemes) + + tempDownloadedThemes.forEach(async (theme) => { + console.log('Updating theme:', theme) + await sendThemeUpdate(theme as DownloadedTheme, true, false) + DeleteDownloadedTheme(theme.id); + }); const matchingThemes = themes.filter(theme => tempDownloadedThemes.some(downloadedTheme => downloadedTheme.id === theme.id) @@ -133,11 +141,20 @@ const ThemeSelector: ForwardRefExoticComponent & const handleThemeDelete = useCallback( async (themeId: string) => { + console.log(themeId, downloadedThemes) try { - await deleteTheme(themeId); - setThemes((prevThemes) => prevThemes.filter((theme) => theme.id !== themeId)); + if (downloadedThemes.some((theme) => theme.id === themeId)) { + console.log('Deleting downloaded theme:', themeId) + DeleteDownloadedTheme(themeId); + setDownloadedThemes((prevThemes) => prevThemes.filter((theme) => theme.id !== themeId)); + } else { + console.log('False') + await deleteTheme(themeId); + setThemes((prevThemes) => prevThemes.filter((theme) => theme.id !== themeId)); + } if (themeId === settingsState.selectedTheme) { - setSelectedTheme(''); + setSelectedTheme('') + disableTheme(); } } catch (error) { console.error('Error deleting theme:', error); diff --git a/src/interface/hooks/ThemeManagment.ts b/src/interface/hooks/ThemeManagment.ts index 184b33b2..74d56183 100644 --- a/src/interface/hooks/ThemeManagment.ts +++ b/src/interface/hooks/ThemeManagment.ts @@ -84,8 +84,9 @@ export const deleteTheme = async (themeID: string) => { }); } -export const sendThemeUpdate = async (updatedTheme: CustomTheme | DownloadedTheme, saveTheme?: boolean, updateImages?: boolean) => { +export const sendThemeUpdate = async (updatedTheme: CustomTheme | DownloadedTheme, saveTheme?: boolean, updateImages?: boolean, enableTheme?: boolean) => { saveTheme = saveTheme || false; + enableTheme = enableTheme || false; const imageDataPromises = updatedTheme.CustomImages.map(async (image) => { if (saveTheme || updateImages) { @@ -120,6 +121,7 @@ export const sendThemeUpdate = async (updatedTheme: CustomTheme | DownloadedThem info: 'UpdateThemePreview', body: themeData, save: saveTheme, + enableTheme: enableTheme }); if (saveTheme) { diff --git a/src/seqta/utils/listeners/MessageListener.ts b/src/seqta/utils/listeners/MessageListener.ts index 930c2d75..177344bd 100644 --- a/src/seqta/utils/listeners/MessageListener.ts +++ b/src/seqta/utils/listeners/MessageListener.ts @@ -30,7 +30,9 @@ export class MessageHandler { if (request?.save == true) { const save = async () => { await saveTheme(request.body) - await setTheme(request.body.id) + if (request.body.enableTheme) { + await setTheme(request.body.id) + } sendResponse({ status: 'success' }) sendThemeUpdate() }