index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { createStore, combineReducers, applyMiddleware } from 'redux'
  2. import thunk from 'redux-thunk'
  3. import { promiseReducer } from './promise/promiseReducer'
  4. import { authReducer } from './auth/authReducer'
  5. import { profileReducer } from './profileData/profileReducer'
  6. import { profileUserReducer } from './profileUserPage/profileUserReducer'
  7. import { feedReducer } from './feed/feedReducer'
  8. import { postReducer } from './post/postReducer'
  9. import { exploreReducer } from './explore/exploreReducer'
  10. import {
  11. promiseWatcher,
  12. fullProfilePageWatcher,
  13. loginWatcher,
  14. fullPageAboutUserWatcher,
  15. feedWatcher,
  16. exploreWatcher,
  17. } from '../saga'
  18. import createSagaMiddleware from 'redux-saga' //функция по созданию middleware
  19. import {
  20. all,
  21. put,
  22. takeEvery,
  23. takeLatest,
  24. takeLeading,
  25. select,
  26. } from 'redux-saga/effects' //
  27. const sagaMiddleware = createSagaMiddleware()
  28. export const store = createStore(
  29. combineReducers({
  30. promise: promiseReducer,
  31. auth: authReducer,
  32. profileData: profileReducer,
  33. profilePage: profileUserReducer,
  34. feed: feedReducer,
  35. post: postReducer,
  36. explore: exploreReducer,
  37. }),
  38. applyMiddleware(sagaMiddleware),
  39. )
  40. function* rootSaga() {
  41. yield all([
  42. promiseWatcher(),
  43. fullProfilePageWatcher(),
  44. loginWatcher(),
  45. fullPageAboutUserWatcher(),
  46. feedWatcher(),
  47. exploreWatcher()
  48. ])
  49. }
  50. sagaMiddleware.run(rootSaga)