pelaporan.reducers.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import {
  2. PELAPORAN_LIST_REQUEST,
  3. PELAPORAN_LIST_SUCCESS,
  4. PELAPORAN_LIST_FAIL,
  5. PELAPORAN_DETAILS_REQUEST,
  6. PELAPORAN_DETAILS_SUCCESS,
  7. PELAPORAN_DETAILS_FAIL,
  8. PELAPORAN_CREATE_REQUEST,
  9. PELAPORAN_CREATE_SUCCESS,
  10. PELAPORAN_CREATE_FAIL,
  11. PELAPORAN_CREATE_RESET,
  12. } from "../actions/pelaporan";
  13. export const pelaporanListReducer = (state = { data: [] }, action) => {
  14. switch (action.type) {
  15. case PELAPORAN_LIST_REQUEST:
  16. return { loading: true, data: [] };
  17. case PELAPORAN_LIST_SUCCESS:
  18. return { loading: false, data: action.payload };
  19. case PELAPORAN_LIST_FAIL:
  20. return { loading: false, error: action.payload };
  21. default:
  22. return state;
  23. }
  24. };
  25. export const pelaporanDetailsReducer = (state = { pelaporan: {} }, action) => {
  26. switch (action.type) {
  27. case PELAPORAN_DETAILS_REQUEST:
  28. return { loading: true, ...state };
  29. case PELAPORAN_DETAILS_SUCCESS:
  30. return { loading: false, data: action.payload };
  31. case PELAPORAN_DETAILS_FAIL:
  32. return { loading: false, error: action.payload };
  33. default:
  34. return state;
  35. }
  36. };
  37. export const pelaporanCreateReducer = (state = {}, action) => {
  38. switch (action.type) {
  39. case PELAPORAN_CREATE_REQUEST:
  40. return { loading: true };
  41. case PELAPORAN_CREATE_SUCCESS:
  42. return { loading: false, success: true, data: action.payload };
  43. case PELAPORAN_CREATE_FAIL:
  44. return { loading: false, error: action.payload };
  45. case PELAPORAN_CREATE_RESET:
  46. return {};
  47. default:
  48. return state;
  49. }
  50. };