From 0312da08417d34cc14f60709ccfe6e7177652e7a Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 5 May 2021 16:57:32 +0300 Subject: [PATCH] more fixes Signed-off-by: Roman --- src/common/ipc/ipc.ts | 14 ++++++++------ src/renderer/components/ace-editor/ace-editor.tsx | 2 -- src/renderer/components/menu/menu.tsx | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/common/ipc/ipc.ts b/src/common/ipc/ipc.ts index 499443643b..0afc8ed125 100644 --- a/src/common/ipc/ipc.ts +++ b/src/common/ipc/ipc.ts @@ -3,25 +3,29 @@ // https://www.electronjs.org/docs/api/ipc-renderer import { ipcMain, ipcRenderer, remote, webContents } from "electron"; -import { toJS } from "mobx"; +import { toJS } from "../utils/toJS"; import logger from "../../main/logger"; import { ClusterFrameInfo, clusterFrameMap } from "../cluster-frames"; const subFramesChannel = "ipc:get-sub-frames"; export function handleRequest(channel: string, listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any) { - ipcMain.handle(channel, listener); + ipcMain.handle(channel, async (event, ...args) => { + return toJS(await listener(event, ...args)); // make safe for ipc-messaging + }); } export async function requestMain(channel: string, ...args: any[]) { + args = args.map(toJS); // unwrap possible observables before IPC-send return ipcRenderer.invoke(channel, ...args); } function getSubFrames(): ClusterFrameInfo[] { - return Array.from(toJS(clusterFrameMap).values()); + return Array.from(clusterFrameMap.values()); } export async function broadcastMessage(channel: string, ...args: any[]) { + args = args.map(toJS); // unwrap possible observables before IPC-send const views = (webContents || remote?.webContents)?.getAllWebContents(); if (!views) return; @@ -79,7 +83,5 @@ export function unsubscribeAllFromBroadcast(channel: string) { } export function bindBroadcastHandlers() { - handleRequest(subFramesChannel, () => { - return getSubFrames(); - }); + handleRequest(subFramesChannel, () => getSubFrames()); } diff --git a/src/renderer/components/ace-editor/ace-editor.tsx b/src/renderer/components/ace-editor/ace-editor.tsx index f0addf4f36..f372e74d38 100644 --- a/src/renderer/components/ace-editor/ace-editor.tsx +++ b/src/renderer/components/ace-editor/ace-editor.tsx @@ -3,7 +3,6 @@ import "./ace-editor.scss"; import React from "react"; -import { makeObservable } from "mobx"; import { observer } from "mobx-react"; import AceBuild, { Ace } from "ace-builds"; import { cssNames, noop } from "../../utils"; @@ -45,7 +44,6 @@ export class AceEditor extends React.Component { constructor(props: Props) { super(props); - makeObservable(this); require("ace-builds/src-noconflict/mode-yaml"); require("ace-builds/src-noconflict/theme-terminal"); require("ace-builds/src-noconflict/ext-searchbox"); diff --git a/src/renderer/components/menu/menu.tsx b/src/renderer/components/menu/menu.tsx index e3c1d99d37..2c6856ff78 100644 --- a/src/renderer/components/menu/menu.tsx +++ b/src/renderer/components/menu/menu.tsx @@ -320,7 +320,7 @@ export class MenuItem extends React.Component { return !!this.props.href; } - onClick(evt: React.MouseEvent) { + onClick = (evt: React.MouseEvent) => { const menu = this.context; const { spacer, onClick } = this.props;