import type { ReactNode } from "react"; import { createContext, useContext } from "react"; export type OperatingSystemPlatform = "mac" | "windows"; type OperatingSystemContext = { platform: OperatingSystemPlatform; }; type OperatingSystemContextProviderProps = { platform: OperatingSystemPlatform; children: ReactNode; }; const Context = createContext(null); export const OperatingSystemContextProvider = ({ platform, children, }: OperatingSystemContextProviderProps) => { return {children}; }; const throwIfNoProvider = () => { throw new Error("Please wrap your application in an OperatingSystemContextProvider."); }; export const useOperatingSystem = () => { const { platform } = useContext(Context) ?? throwIfNoProvider(); return { platform }; };