diff --git a/desktop/main.js b/desktop/main.js
--- a/desktop/main.js
+++ b/desktop/main.js
@@ -29,11 +29,19 @@
trafficLightPosition: { x: 20, y: 24 },
backgroundColor: '#0a0a0a',
webPreferences: {
+ preload: path.join(__dirname, 'preload.js'),
sandbox: true,
devTools: isDev,
},
});
+ win.webContents.on('did-navigate-in-page', () => {
+ win.webContents.send('on-navigate', {
+ canGoBack: win.webContents.canGoBack(),
+ canGoForward: win.webContents.canGoForward(),
+ });
+ });
+
win.webContents.setWindowOpenHandler(({ url }) => {
shell.openExternal(url);
return { action: 'deny' };
diff --git a/desktop/preload.js b/desktop/preload.js
new file mode 100644
--- /dev/null
+++ b/desktop/preload.js
@@ -0,0 +1,7 @@
+const { contextBridge, ipcRenderer } = require('electron');
+
+const bridge = {
+ onNavigate: callback => ipcRenderer.on('on-navigate', callback),
+};
+
+contextBridge.exposeInMainWorld('electronContextBridge', bridge);
diff --git a/web/app.react.js b/web/app.react.js
--- a/web/app.react.js
+++ b/web/app.react.js
@@ -32,6 +32,7 @@
import Chat from './chat/chat.react';
import { TooltipProvider } from './chat/tooltip-provider';
import NavigationArrows from './components/navigation-arrows.react';
+import electron from './electron';
import InputStateContainer from './input/input-state-container.react';
import LoadingIndicator from './loading-indicator.react';
import { MenuProvider } from './menu-provider.react';
@@ -175,9 +176,8 @@
}
}
- const shouldShowNavigationArrows = false;
let navigationArrows = null;
- if (shouldShowNavigationArrows) {
+ if (electron) {
navigationArrows =