diff --git a/src/background.ts b/src/background.ts index 84dfd058..787e98a5 100644 --- a/src/background.ts +++ b/src/background.ts @@ -237,10 +237,10 @@ function SetStorageValue(object: any) { } } -function UpdateCurrentValues() { - const result = browser.storage.local.get() - function open (items: any) { - var CurrentValues = items; +async function UpdateCurrentValues() { + try { + const items = await browser.storage.local.get(); + const CurrentValues = items; const NewValue = Object.assign({}, DefaultValues, CurrentValues); @@ -248,13 +248,12 @@ function UpdateCurrentValues() { for (let i in element) { if (typeof element[i] === 'object') { // @ts-expect-error - if (typeof DefaultValues[i].length == 'undefined') { + if (!Array.isArray(DefaultValues[i])) { // @ts-expect-error NewValue[i] = Object.assign({}, DefaultValues[i], CurrentValues[i]); } else { - // If the object is an array, turn it back after // @ts-expect-error - let length = DefaultValues[i].length; + const length = DefaultValues[i].length; // @ts-expect-error NewValue[i] = Object.assign({}, DefaultValues[i], CurrentValues[i]); let NewArray = []; @@ -266,6 +265,7 @@ function UpdateCurrentValues() { } } } + CheckInnerElement(DefaultValues); if (items['customshortcuts']) { @@ -273,8 +273,10 @@ function UpdateCurrentValues() { } SetStorageValue(NewValue); + console.log('[BetterSEQTA+] Values updated successfully'); + } catch (error) { + console.error('[BetterSEQTA+] Error updating values:', error); } - result.then(open, console.error) } browser.runtime.onInstalled.addListener(function (event) { diff --git a/src/interface/SettingsContext.tsx b/src/interface/SettingsContext.tsx index f66b8c20..84cf0382 100644 --- a/src/interface/SettingsContext.tsx +++ b/src/interface/SettingsContext.tsx @@ -23,7 +23,8 @@ export const SettingsContextProvider: React.FC<{ children: ReactNode }> = ({ chi shortcuts: [], customshortcuts: [], transparencyEffects: false, - selectedTheme: '' + selectedTheme: '', + animations: true }); const [showPicker, setShowPicker] = useState(false); diff --git a/src/interface/hooks/settingsState.ts b/src/interface/hooks/settingsState.ts index f7ee23fb..061c767e 100644 --- a/src/interface/hooks/settingsState.ts +++ b/src/interface/hooks/settingsState.ts @@ -1,7 +1,7 @@ import browser from 'webextension-polyfill' import { useEffect, useMemo } from "react"; import { SettingsProps } from "../types/SettingsProps"; -import { MainConfig, SettingsState } from "../types/AppProps"; +import { SettingsState } from "../types/AppProps"; import { SettingsState as StorageSettingsState } from '../../types/storage'; let RanOnce = false; @@ -25,7 +25,8 @@ const useSettingsState = ({ settingsState, setSettingsState }: SettingsProps) => customshortcuts: result.customshortcuts, transparencyEffects: result.transparencyEffects, selectedTheme: result.selectedTheme, - timeFormat: result.timeFormat + timeFormat: result.timeFormat, + animations: result.animations }); }); }); @@ -41,7 +42,8 @@ const useSettingsState = ({ settingsState, setSettingsState }: SettingsProps) => "customshortcuts": "customshortcuts", "transparencyEffects": "transparencyEffects", "selectedTheme": "selectedTheme", - "timeFormat": "timeFormat" + "timeFormat": "timeFormat", + "animations": "animations" }), []); const storageChangeListener = (changes: browser.Storage.StorageChange) => { @@ -55,7 +57,7 @@ const useSettingsState = ({ settingsState, setSettingsState }: SettingsProps) => } // @ts-expect-error - TODO: Fix this - const stateKey = keyToStateMap[key as keyof MainConfig]; + const stateKey = keyToStateMap[key as keyof StorageSettingsState]; if (stateKey) { setSettingsState((prevState: SettingsState) => ({ ...prevState, @@ -73,7 +75,7 @@ const useSettingsState = ({ settingsState, setSettingsState }: SettingsProps) => }; }); - const setStorage = (key: keyof MainConfig, value: any) => { + const setStorage = (key: keyof StorageSettingsState, value: any) => { browser.storage.local.set({ [key]: value }); } @@ -84,7 +86,7 @@ const useSettingsState = ({ settingsState, setSettingsState }: SettingsProps) => const storageKey = Object.keys(keyToStateMap).find(k => keyToStateMap[k] === key); // @ts-expect-error - TODO: Fix this if (storageKey && value !== previousSettingsState[key]) { - setStorage(storageKey as keyof MainConfig, value); + setStorage(storageKey as keyof StorageSettingsState, value); } } } diff --git a/src/interface/types/AppProps.ts b/src/interface/types/AppProps.ts index 0175de06..8aa10331 100644 --- a/src/interface/types/AppProps.ts +++ b/src/interface/types/AppProps.ts @@ -10,6 +10,7 @@ export interface SettingsState { customshortcuts: CustomShortcut[]; transparencyEffects: boolean; timeFormat?: string; + animations: boolean; } interface ToggleItem { @@ -27,7 +28,7 @@ export interface CustomShortcut { icon: string; } -export interface MainConfig { +/* export interface MainConfig { DarkMode: boolean; animatedbk: boolean; bksliderinput: string; @@ -60,4 +61,4 @@ export interface MainConfig { subjectfilters: Record; transparencyEffects: boolean; selectedTheme: string; -} +} */