stationOverlay.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { Map } from "immutable";
  2. import {
  3. OPEN_OVERLAY1,
  4. OPEN_OVERLAY2,
  5. OPEN_OVERLAY3,
  6. CLOSE_OVERLAY1,
  7. CLOSE_OVERLAY2,
  8. CLOSE_OVERLAY3,
  9. } from "actions/stationOverlay";
  10. const initialState = Map({
  11. overlay1: null,
  12. overlay2: null,
  13. overlay3: null,
  14. callback: null,
  15. extraProps2: null,
  16. });
  17. const actionsMap = {
  18. [OPEN_OVERLAY1]: (state, action) => {
  19. return state.merge({
  20. overlay1: action.overlay,
  21. });
  22. },
  23. [OPEN_OVERLAY2]: (state, action) => {
  24. return state.merge({
  25. overlay2: action.overlay,
  26. extraProps2: action.extraProps,
  27. callback: action.callback,
  28. });
  29. },
  30. [OPEN_OVERLAY3]: (state, action) => {
  31. return state.merge({
  32. overlay3: action.overlay,
  33. callback: action.callback,
  34. });
  35. },
  36. [CLOSE_OVERLAY1]: (state, action) => {
  37. return state.merge({
  38. overlay1: null,
  39. });
  40. },
  41. [CLOSE_OVERLAY2]: (state, action) => {
  42. return state.merge({
  43. overlay2: null,
  44. callback: null,
  45. });
  46. },
  47. [CLOSE_OVERLAY3]: (state, action) => {
  48. return state.merge({
  49. overlay3: null,
  50. });
  51. },
  52. };
  53. export default function reducer(state = initialState, action = {}) {
  54. const fn = actionsMap[action.type];
  55. return fn ? fn(state, action) : state;
  56. }