Files
drawdb/src/context/SettingsContext.jsx
2025-04-06 18:04:14 -06:00

39 lines
987 B
JavaScript

import { createContext, useEffect, useState } from "react";
import { tableWidth, Notation } from "../data/constants";
const defaultSettings = {
strictMode: false,
showFieldSummary: true,
showGrid: true,
mode: "light",
autosave: true,
panning: true,
showCardinality: true,
showRelationshipLabels: true,
notation: Notation.DEFAULT,
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>
);
}