diff --git a/src/renderer/modal/modalIncompatibleDaemon/index.js b/src/renderer/modal/modalIncompatibleDaemon/index.js index fda1b57f952..8feed2ca746 100644 --- a/src/renderer/modal/modalIncompatibleDaemon/index.js +++ b/src/renderer/modal/modalIncompatibleDaemon/index.js @@ -1,12 +1,10 @@ -import React from 'react'; import { connect } from 'react-redux'; -import { doQuit, doSkipWrongDaemonNotice } from 'redux/actions/app'; +import { doQuit, doQuitAnyDaemon } from 'redux/actions/app'; import ModalIncompatibleDaemon from './view'; -const select = state => ({}); - const perform = dispatch => ({ quit: () => dispatch(doQuit()), + quitAnyDaemon: () => dispatch(doQuitAnyDaemon()), }); -export default connect(select, perform)(ModalIncompatibleDaemon); +export default connect(null, perform)(ModalIncompatibleDaemon); diff --git a/src/renderer/modal/modalIncompatibleDaemon/view.jsx b/src/renderer/modal/modalIncompatibleDaemon/view.jsx index cfab04ab123..3526ab4e9eb 100644 --- a/src/renderer/modal/modalIncompatibleDaemon/view.jsx +++ b/src/renderer/modal/modalIncompatibleDaemon/view.jsx @@ -4,15 +4,17 @@ import Link from 'component/link/index'; class ModalIncompatibleDaemon extends React.PureComponent { render() { - const { quit } = this.props; + const { quit, quitAnyDaemon } = this.props; return ( {__( 'This browser is running with an incompatible version of the LBRY protocol and your install must be repaired. ' diff --git a/src/renderer/redux/actions/app.js b/src/renderer/redux/actions/app.js index 6a1f138ba50..f9c868baff7 100644 --- a/src/renderer/redux/actions/app.js +++ b/src/renderer/redux/actions/app.js @@ -1,3 +1,4 @@ +import { execSync } from 'child_process'; import isDev from 'electron-is-dev'; import Lbry from 'lbry'; import path from 'path'; @@ -329,6 +330,22 @@ export function doQuit() { }; } +export function doQuitAnyDaemon() { + return dispatch => { + try { + if (process.platform === 'win32') { + execSync('taskkill /im lbrynet-daemon.exe /t /f'); + } else { + execSync('pkill lbrynet-daemon'); + } + } catch (error) { + dispatch(doAlertError(`Quitting daemon failed due to: ${error.message}`)); + } finally { + dispatch(doQuit()); + } + }; +} + export function doChangeVolume(volume) { return dispatch => { dispatch({