ProzillaOS/src/hooks/settings/settingsManagerContext.tsx
Prozilla 2ede410bec
Migration to TypeScript - Stage 3
Improved safe typing
2024-05-10 15:43:14 +02:00

25 lines
No EOL
832 B
TypeScript

import { createContext, FC, ReactNode, useContext } from "react";
import { SettingsManager } from "../../features/settings/settingsManager";
import { useVirtualRoot } from "../virtual-drive/virtualRootContext";
type SettingsManagerState = SettingsManager | undefined;
const SettingsManagerContext = createContext<SettingsManagerState>(undefined);
/**
* Note: needs to be inside a virtual root provider
*/
export const SettingsManagerProvider: FC<{ children: ReactNode }> = ({ children }) => {
const virtualRoot = useVirtualRoot();
const settingsManager = new SettingsManager(virtualRoot);
return (
<SettingsManagerContext.Provider value={settingsManager}>
{children}
</SettingsManagerContext.Provider>
);
};
export function useSettingsManager(): SettingsManagerState {
return useContext(SettingsManagerContext);
}