ProzillaOS/src/hooks/settings/settingsManagerContext.tsx
2024-05-07 21:06:07 +02:00

26 lines
No EOL
924 B
TypeScript

import { createContext, FC, ReactNode, useContext } from "react";
import { SettingsManager } from "../../features/settings/settingsManager";
import { useVirtualRoot } from "../virtual-drive/virtualRootContext";
import { VirtualRoot } from "../../features/virtual-drive/root/virtualRoot";
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 as VirtualRoot);
return (
<SettingsManagerContext.Provider value={settingsManager}>
{children}
</SettingsManagerContext.Provider>
);
};
export function useSettingsManager(): SettingsManagerState {
return useContext(SettingsManagerContext);
}