drawDB/src/context/SettingsContext.jsx
2024-11-08 20:56:44 +04:00

38 lines
916 B
JavaScript

import { createContext, useEffect, useState } from "react";
import { tableWidth } from "../data/constants";
const defaultSettings = {
strictMode: false,
showFieldSummary: true,
showGrid: true,
mode: "light",
autosave: true,
panning: true,
showCardinality: true,
tableWidth: tableWidth,
showDebugCoordinates: false,
};
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));
}
}, []);
useEffect(() => {
localStorage.setItem("settings", JSON.stringify(settings));
}, [settings]);
return (
<SettingsContext.Provider value={{ settings, setSettings }}>
{children}
</SettingsContext.Provider>
);
}