ipcHandlerManage.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { app, ipcMain } from "electron";
  2. import { closeWindow, minimize, splashEnd, updateMaximize } from "./windowManage";
  3. import { IpcRenderToMain } from "../constants";
  4. import { getStore } from "./storeManage";
  5. import { changeLanguage } from "../i18n";
  6. const store = getStore();
  7. export const setIpcMainListener = () => {
  8. // window manage
  9. ipcMain.handle("changeLanguage", (_, locale) => {
  10. store.set("language", locale);
  11. changeLanguage(locale).then(() => {
  12. app.relaunch();
  13. app.exit(0);
  14. });
  15. });
  16. ipcMain.handle("main-win-ready", () => {
  17. splashEnd();
  18. });
  19. ipcMain.handle(IpcRenderToMain.minimizeWindow, () => {
  20. minimize();
  21. });
  22. ipcMain.handle(IpcRenderToMain.maxmizeWindow, () => {
  23. updateMaximize();
  24. });
  25. ipcMain.handle(IpcRenderToMain.closeWindow, () => {
  26. closeWindow();
  27. });
  28. ipcMain.handle(IpcRenderToMain.setKeyStore, (_, { key, data }) => {
  29. store.set(key, data);
  30. });
  31. ipcMain.handle(IpcRenderToMain.getKeyStore, (_, { key }) => {
  32. return store.get(key);
  33. });
  34. ipcMain.on(IpcRenderToMain.getKeyStoreSync, (e, { key }) => {
  35. e.returnValue = store.get(key);
  36. });
  37. ipcMain.on(IpcRenderToMain.getDataPath, (e, key: string) => {
  38. switch (key) {
  39. case "public":
  40. e.returnValue = global.pathConfig.publicPath;
  41. break;
  42. default:
  43. e.returnValue = global.pathConfig.publicPath;
  44. break;
  45. }
  46. });
  47. };