diff --git a/src/context/SettingsContext.jsx b/src/context/SettingsContext.jsx index 9c50bf855..36e47f72e 100644 --- a/src/context/SettingsContext.jsx +++ b/src/context/SettingsContext.jsx @@ -18,14 +18,10 @@ const defaultSettings = { export const SettingsContext = createContext(defaultSettings); export default function SettingsContextProvider({ children }) { - const [settings, setSettings] = useState(defaultSettings); - - useEffect(() => { - const settings = localStorage.getItem("settings"); - if (settings) { - setSettings(JSON.parse(settings)); - } - }, []); + const [settings, setSettings] = useState(() => { + const savedSettings = localStorage.getItem("settings"); + return savedSettings ? JSON.parse(savedSettings) : defaultSettings; + }); useEffect(() => { document.body.setAttribute("theme-mode", settings.mode); diff --git a/src/utils/utils.js b/src/utils/utils.js index a9a1ddbb2..75e91d1f7 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -7,6 +7,10 @@ import { } from "../data/constants"; export function dataURItoBlob(dataUrl) { + if (!dataUrl || !dataUrl.includes(",")) { + console.error("Invalid data URI"); + return new Blob([]); + } const byteString = atob(dataUrl.split(",")[1]); const mimeString = dataUrl.split(",")[0].split(":")[1].split(";")[0]; const arrayBuffer = new ArrayBuffer(byteString.length);