Bind windows api

This commit is contained in:
2022-04-16 13:54:56 +08:00
parent 4f175a5505
commit 8b29654fdf
5 changed files with 124 additions and 25 deletions
+6 -4
View File
@@ -1,12 +1,12 @@
import { createContext } from "react";
import { superConnect } from "@Context/Context";
import { ISimulatorAPI } from "@Electron/SimulatorAPI";
import { superConnect, superConnectWithEvent } from "@Context/Context";
import { ISimulatorAPI, IApiEmitterEvent } from "@Electron/SimulatorAPI";
interface IMixinElectronProps {
electron?: ISimulatorAPI;
}
const ElectronContext = createContext<ISimulatorAPI>({} as ISimulatorAPI);
const ElectronContext = createContext<ISimulatorAPI>((window as any).API ?? {} as ISimulatorAPI);
ElectronContext.displayName = "Electron";
const ElectronProvider = ElectronContext.Provider;
@@ -17,4 +17,6 @@ const ElectronConsumer = ElectronContext.Consumer;
*/
const useElectron = superConnect<ISimulatorAPI>(ElectronConsumer, "electron");
export { useElectron, ElectronProvider, IMixinElectronProps, ISimulatorAPI };
const useElectronWithEvent = superConnectWithEvent<ISimulatorAPI, IApiEmitterEvent>(ElectronConsumer, "electron");
export { useElectron, ElectronProvider, IMixinElectronProps, ISimulatorAPI, useElectronWithEvent };