Utilisation de React pour le client

This commit is contained in:
2019-11-28 14:12:48 +01:00
parent 98f4288c8a
commit c6851f3f42
27 changed files with 751 additions and 444 deletions

View File

@ -0,0 +1,5 @@
export function issuesReducer(state = {}, action) {
return state;
}

View File

@ -0,0 +1,6 @@
import { combineReducers } from 'redux';
import { issuesReducer } from './issues';
export const rootReducer = combineReducers({
issues: issuesReducer,
});

View File

@ -0,0 +1,4 @@
export function* handleFailedActionSaga(action) {
console.error(action.error);
}

View File

@ -0,0 +1,14 @@
import { all, takeEvery } from 'redux-saga/effects';
import { handleFailedActionSaga } from './failure';
export function* rootSaga() {
yield all([
takeEvery(patternFromRegExp(/^.*_FAILURE/), handleFailedActionSaga),
]);
}
export function patternFromRegExp(re) {
return (action) => {
return re.test(action.type);
};
}

28
client/src/store/store.js Normal file
View File

@ -0,0 +1,28 @@
import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware from 'redux-saga'
import { rootReducer } from './reducers/root'
import { rootSaga } from './sagas/root'
let reduxMiddlewares = [];
if (process.env.NODE_ENV !== 'production') {
const createLogger = require('redux-logger').createLogger;
const loggerMiddleware = createLogger({
collapsed: true,
diff: true
});
reduxMiddlewares.push(loggerMiddleware);
}
// create the saga middleware
const sagaMiddleware = createSagaMiddleware()
reduxMiddlewares.push(sagaMiddleware);
// mount it on the Store
export const store = createStore(
rootReducer,
applyMiddleware(...reduxMiddlewares)
)
// then run the saga
sagaMiddleware.run(rootSaga);