ProzillaOS/src/hooks/settings/SettingsContext.js
2023-08-15 12:58:58 +02:00

29 lines
No EOL
779 B
JavaScript

import { createContext, useContext } from "react";
import { SettingsManager } from "../../features/settings/settings.js";
import { useVirtualRoot } from "../virtual-drive/VirtualRootContext.js";
const SettingsContext = createContext();
/**
* Note: needs to be inside a virtual root provider
* @param props
* @param props.children
* @returns {import("react").Provider<SettingsManager>}
*/
export function SettingsManagerProvider({ children }) {
const virtualRoot = useVirtualRoot();
const settingsManager = new SettingsManager(virtualRoot);
return (
<SettingsContext.Provider value={settingsManager}>
{children}
</SettingsContext.Provider>
);
}
/**
* @returns {SettingsManager}
*/
export function useSettingsManager() {
return useContext(SettingsContext);
}