Browse Source

feature(lnd-ipc): add redux-electron-ipc for easier send/receive IPC calls w/ redux

renovate/lint-staged-8.x
Jack Mallers 8 years ago
parent
commit
3cb8d3b522
  1. 2
      app/main.dev.js
  2. 9
      app/reducers/info.js
  3. 9
      app/reducers/ipc.js
  4. 15
      app/store/configureStore.dev.js
  5. 1
      package.json
  6. 4
      yarn.lock

2
app/main.dev.js

@ -96,7 +96,7 @@ ipcMain.on('lnd', (event, { msg, data }) => {
switch(msg) {
case 'info':
lnd.info()
.then(data => event.sender.send('info', data))
.then(info => event.sender.send('receivedInfo', info))
.catch(error => console.log('info error: ', error))
break
default:

9
app/reducers/info.js

@ -15,6 +15,7 @@ export function getInfo() {
}
}
export function receiveInfo(data) {
return {
type: RECEIVE_INFO,
@ -22,15 +23,15 @@ export function receiveInfo(data) {
}
}
// Send IPC event for getifno
export const fetchInfo = () => async (dispatch) => {
dispatch(getInfo())
ipcRenderer.send('lnd', { msg: 'info' })
ipcRenderer.on('info', (event, info) => {
dispatch(receiveInfo(info))
})
// const info = await callApi('info')
}
// Receive IPC event for info
export const receivedInfo = (event, data) => dispatch => dispatch({ type: RECEIVE_INFO, data })
// ------------------------------------
// Action Handlers
// ------------------------------------

9
app/reducers/ipc.js

@ -0,0 +1,9 @@
import createIpc from 'redux-electron-ipc'
import { receivedInfo } from './info'
// Import all receiving IPC event handlers and pass them into createIpc
const ipc = createIpc({
'receivedInfo': receivedInfo
})
export default ipc

15
app/store/configureStore.dev.js

@ -1,9 +1,10 @@
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import { createHashHistory } from 'history';
import { routerMiddleware, routerActions } from 'react-router-redux';
import { createLogger } from 'redux-logger';
import rootReducer from '../reducers';
import { createStore, applyMiddleware, compose } from 'redux'
import thunk from 'redux-thunk'
import { createHashHistory } from 'history'
import { routerMiddleware, routerActions } from 'react-router-redux'
import { createLogger } from 'redux-logger'
import rootReducer from '../reducers'
import ipc from '../reducers/ipc'
const history = createHashHistory();
@ -41,7 +42,7 @@ const configureStore = (initialState?: counterStateType) => {
/* eslint-enable no-underscore-dangle */
// Apply Middleware & Compose Enhancers
enhancers.push(applyMiddleware(...middleware));
enhancers.push(applyMiddleware(...middleware, ipc));
const enhancer = composeEnhancers(...enhancers);
// Create Store

1
package.json

@ -206,6 +206,7 @@
"react-svg-morph": "^0.1.10",
"react-websocket": "^1.1.7",
"redux": "^3.7.1",
"redux-electron-ipc": "^1.1.10",
"redux-thunk": "^2.2.0",
"reselect": "^3.0.1",
"satoshi-bitcoin": "^1.0.4",

4
yarn.lock

@ -7289,6 +7289,10 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^0.4.2"
redux-electron-ipc@^1.1.10:
version "1.1.10"
resolved "https://registry.yarnpkg.com/redux-electron-ipc/-/redux-electron-ipc-1.1.10.tgz#0e4de0ae30eb8571209f24e75149007e965e65d1"
redux-logger@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-3.0.6.tgz#f7555966f3098f3c88604c449cf0baf5778274bf"

Loading…
Cancel
Save