import { createContext, ReactNode, useState } from "react"; interface Context { settings: Settings; setSetting: (key: K, value: Settings[K]) => void; } interface Props { children: ReactNode; } const defaultSettings: Settings = { grid: true, canvasBorder: false, historyPanel: true, colorPicker: true, blockReplacer: true, toolSettings: true, blockSelector: true, fpsCounter: false, }; // eslint-disable-next-line react-refresh/only-export-components export const SettingsContext = createContext({} as Context); export const SettingsProvider = ({ children }: Props) => { const [settings, setSettings] = useState(defaultSettings); const setSetting = (key: K, value: Settings[K]) => { setSettings((prev) => ({ ...prev, [key]: value })); }; return {children}; };