Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
constructor(props) {
super(props);
// define the initial state where none of the widgets are visible
this.state = {
hackerNews: false,
weather: false,
};
/**
* configure the store and load the thunk and saga extension
* The extensions are optional and you can choose extension based on the middleware you use
* You can also build your own extensions for any other middleware e.g. redux-observable
*/
this.store = createStore({
enhancements: [offline(offlineConfig)],
extensions: [getThunkExtension(), getSagaExtension()],
});
}
export function getEpicManager(
epicMiddleware: EpicMiddleware
): IEpicManager {
let runningEpics: { [epicKey: string]: IEpicWrapper } = {};
// @ts-ignore
let epicRefCounter = getObjectRefCounter();
return {
/**
* Dynamically add epics.
*
* We should consider these potential problem:
* * Epic could add repeatedly
* * Epic could as a dependency of two or more modules
* * Module hot load. React-hot-loader will rerender your react root
* component which means it will invoke all of your logic again. So this is
* minor worry.
*/
add(epics: Epic[] = []) {
epics.forEach(epic => {
const epicKey = epic.toString();
// Check if epic already exists
export function getSagaManager(
sagaMiddleware: SagaMiddleware
): IItemManager> {
const tasks = getMap, Task>(sagaEquals);
return {
getItems: (): ISagaRegistration[] => [...tasks.keys],
add: (sagas: ISagaRegistration[]) => {
if (!sagas) {
return;
}
sagas.forEach(saga => {
if (saga && !tasks.get(saga)) {
tasks.add(saga, runSaga(sagaMiddleware, saga));
}
});
},
remove: (sagas: ISagaRegistration[]) => {
if (!sagas) {
return;