Skip to content

Commit 5cff63d

Browse files
author
schowdhury
committed
(React-Redux-Observable): Rxjs configuration complete
1 parent efd140f commit 5cff63d

File tree

8 files changed

+53
-16
lines changed

8 files changed

+53
-16
lines changed

app/config/rootEpic.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { combineEpics } from 'redux-observable';
2+
import { epicChecklogin } from '../features/signup/epicSignup';
3+
4+
// List all the epics here
5+
export default combineEpics(
6+
epicChecklogin,
7+
);

app/config/store.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
import {createStore, applyMiddleware, compose} from "redux";
2-
import rootReducer from './rootReducer';
2+
import { createEpicMiddleware } from 'redux-observable';
33

4-
const middlewares = [];
4+
import rootReducer from "./rootReducer";
5+
import rootEpic from "./rootEpic";
6+
7+
const epicMiddleware = createEpicMiddleware();
8+
9+
const middlewares = [
10+
epicMiddleware
11+
];
512
const initialState = {};
613

714
const composeEnhancers = (window).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
815
const enhancers = composeEnhancers(applyMiddleware(...middlewares));
916

10-
export const Store = createStore(rootReducer, initialState, enhancers);
17+
export const Store = createStore(rootReducer, initialState, enhancers);
18+
19+
epicMiddleware.run(rootEpic);
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
export const TypeActionHome = {
22
checkLogin : "AuthInfo > checkLogin",
3+
setLogin : "AuthInfo > setLogin",
4+
35
signupUser : "Home > signupUser",
46
};
57

6-
export const isLoggedIn = () => ({
8+
export const actionCheckIsLoggedIn = () => ({
79
type: TypeActionHome.checkLogin,
8-
isLoggedIn: true
10+
});
11+
12+
export const actionSetIsLoggedIn = (status) => ({
13+
type: TypeActionHome.setLogin,
14+
status
915
});

app/features/signup/epicSignup.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {ofType} from "redux-observable";
2+
import {actionSetIsLoggedIn, TypeActionHome} from "./actionSignup";
3+
4+
import {switchMap} from 'rxjs/operators';
5+
import {from} from "rxjs";
6+
7+
export const epicChecklogin = ( action$, state$ ) =>
8+
action$.pipe(
9+
ofType(TypeActionHome.checkLogin),
10+
switchMap(
11+
() => {
12+
const actions = [
13+
actionSetIsLoggedIn(true),
14+
];
15+
16+
return from(actions);
17+
}
18+
)
19+
);

app/features/signup/index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import React, {Component} from 'react';
22
import {connect} from 'react-redux';
33

4-
import isLoggedIn from "./actionSignup";
4+
import {actionCheckIsLoggedIn} from "./actionSignup";
55

66
class _Signup extends Component {
77
render (){
88
const props = this.props;
9+
console.log(props)
910
return (
1011
<div>
1112
<h4>Status: {props.status.toString()}</h4>
13+
<button onClick={props.onLoadCheckLogin}>Login please</button>
1214
</div>
1315
);
1416
}
@@ -18,8 +20,8 @@ const mapState = (state) => ({
1820
status: state.reducerSignup.isLoggedIn
1921
})
2022

21-
const mapDispatch = (state) => ({
22-
23+
const mapDispatch = (dispatch) => ({
24+
onLoadCheckLogin: () => dispatch(actionCheckIsLoggedIn())
2325
})
2426

2527
export default connect(mapState, mapDispatch)(_Signup);

app/features/signup/reducerSignup.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ const initialState = {
77

88
export default (state = initialState, action) => {
99
switch(action.type) {
10-
case TypeActionHome.checkLogin:
10+
case TypeActionHome.setLogin:
1111
return Object.assign(
1212
{},
1313
state,
14-
{isLoggedIn: action.isLoggedIn}
14+
{isLoggedIn: action.status}
1515
)
1616

1717
default:

package-lock.json

Lines changed: 0 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
"react-redux": "^5.0.7",
1616
"redux": "^4.0.0",
1717
"redux-observable": "^1.0.0",
18-
"redux-thunk": "^2.3.0",
1918
"rxjs": "^6.3.3"
2019
},
2120
"devDependencies": {

0 commit comments

Comments
 (0)