{
+ state = {
+ log: null,
+ };
+
+ componentDidMount() {
+ ipcRenderer.on('zcashd-log', (event, message) => {
+ this.setState(() => ({
+ log: message,
+ }));
+ });
+ }
+
+ render() {
+ return (
+
+ {this.state.log
+ && this.state.log.split('\n').map(item => (
+
+ {item}
+
+
+ ))}
+
+ );
+ }
+}
diff --git a/config/daemon/zcashd-child-process.js b/config/daemon/zcashd-child-process.js
index 6283c47..c889a3d 100644
--- a/config/daemon/zcashd-child-process.js
+++ b/config/daemon/zcashd-child-process.js
@@ -3,10 +3,12 @@ import cp from 'child_process';
import path from 'path';
import os from 'os';
import processExists from 'process-exists';
-/* eslint-disable-next-line import/no-extraneous-dependencies */
+/* eslint-disable import/no-extraneous-dependencies */
import isDev from 'electron-is-dev';
import type { ChildProcess } from 'child_process';
import eres from 'eres';
+/* eslint-disable-next-line import/named */
+import { mainWindow } from '../electron';
import getBinariesPath from './get-binaries-path';
import getOsFolder from './get-os-folder';
@@ -78,8 +80,8 @@ const runDaemon: () => Promise = () => new Promise(async (resolve
stdio: ['ignore', 'pipe', 'pipe'],
});
- childProcess.stdout.on('data', () => {
- // TODO: Send logs to app
+ childProcess.stdout.on('data', (data) => {
+ if (mainWindow) mainWindow.webContents.send('zcashd-log', data.toString());
if (!resolved) {
resolve(childProcess);
resolved = true;
diff --git a/config/electron.js b/config/electron.js
index 9ba8618..3c741d4 100644
--- a/config/electron.js
+++ b/config/electron.js
@@ -64,6 +64,7 @@ const createWindow = () => {
mainWindow.loadURL(isDev ? 'http://0.0.0.0:8080/' : `file://${path.join(__dirname, '../build/index.html')}`);
exports.app = app;
+ exports.mainWindow = mainWindow;
};
/* eslint-disable-next-line consistent-return */
diff --git a/config/webpack-main.config.js b/config/webpack-main.config.js
index 0e674c4..10b4814 100644
--- a/config/webpack-main.config.js
+++ b/config/webpack-main.config.js
@@ -10,6 +10,7 @@ module.exports = {
minimizer: [new UglifyJSPlugin({ sourceMap: true })],
},
devtool: 'cheap-module-source-map',
+ target: 'electron-renderer',
module: {
rules: [
{