2024-11-09 00:56:44 +08:00
|
|
|
import { createContext, useEffect, useState } from "react";
|
2024-04-10 11:47:06 +08:00
|
|
|
import { tableWidth } from "../data/constants";
|
2024-03-10 04:39:46 +08:00
|
|
|
|
2024-11-09 00:56:44 +08:00
|
|
|
const defaultSettings = {
|
2024-07-01 06:53:53 +08:00
|
|
|
strictMode: false,
|
|
|
|
showFieldSummary: true,
|
|
|
|
showGrid: true,
|
|
|
|
mode: "light",
|
|
|
|
autosave: true,
|
|
|
|
panning: true,
|
|
|
|
showCardinality: true,
|
|
|
|
tableWidth: tableWidth,
|
|
|
|
showDebugCoordinates: false,
|
2024-11-09 00:56:44 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
export const SettingsContext = createContext(defaultSettings);
|
2024-03-10 04:39:46 +08:00
|
|
|
|
|
|
|
export default function SettingsContextProvider({ children }) {
|
2024-11-09 00:56:44 +08:00
|
|
|
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]);
|
2024-03-10 04:39:46 +08:00
|
|
|
|
|
|
|
return (
|
|
|
|
<SettingsContext.Provider value={{ settings, setSettings }}>
|
|
|
|
{children}
|
|
|
|
</SettingsContext.Provider>
|
|
|
|
);
|
|
|
|
}
|