Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. import {PRODUCT_ACTION,FANPAGE_ACTION}from '../actions/conf';
  2.  
  3. const initialState = {
  4. listCate: {
  5. data: [],
  6. paging: [],//không phải dạng load more
  7. total: '--',
  8. limit: 35,
  9. statusText: '',
  10. status: null
  11. },
  12. listCateOnly: {
  13. data: [],
  14. statusText: '',
  15. status: null
  16. //Chỉ danh sách category của page mà thôi => dùng cho phần edit and add product
  17. },
  18. cateSelected: {},
  19.  
  20.  
  21. listProduct: {
  22. data: [],
  23. paging: [],//không phải dạng load more - nếu là loadmore sẽ là {}
  24. total: '--',
  25. limit: 35
  26. },
  27. productSelected: {},
  28. };
  29. export default function (state = initialState, action) {
  30. switch (action.type) {
  31. case PRODUCT_ACTION.LOAD_LIST_CATE: {
  32. return {
  33. ...state,
  34. listCate: {
  35. ...state.listCate,
  36. loaded: action.loaded,
  37. data: action.data,
  38. paging: action.paging,
  39. limit: action.limit,
  40. total: action.total,
  41. }
  42. }
  43. /* return Object.assign({}, state, {
  44. listCate: action,
  45. });*/
  46. }
  47. case PRODUCT_ACTION.LOAD_LIST_CATE_ONLY: {
  48. return Object.assign({}, state, {
  49. listCateOnly: action,
  50. });
  51. }
  52. case PRODUCT_ACTION.LOAD_LIST_CATE + PRODUCT_ACTION.STATE.BUG: {
  53. //console.log(action)
  54. return {
  55. ...state,
  56. listCate: {
  57. ...state.listCate,
  58. loaded: action.loaded,
  59. statusText: action.response.statusText,
  60. status: action.response.status,
  61. }
  62. }
  63. }
  64. case PRODUCT_ACTION.UPDATE_CATE: {
  65. let {data, limit, total} = state.listCate;
  66. //console.log(action)
  67. for (let i = 0; i < data.length; i++) {
  68. if (data[i].name.toLowerCase() === action.data.name || (data[i].id === action.data.id)) {
  69. //console.log(data[i])
  70. data.splice(i, 1);
  71. }
  72. }
  73. data.unshift(action.data);
  74. if (limit < data.length) {
  75. data.pop();
  76. }
  77. if (action.action === 'ADD') {
  78. total = total + 1;
  79. }
  80. return {
  81. ...state,
  82. listCate: {
  83. ...state.listCate,
  84. data: data,
  85. total: total
  86. }
  87. }
  88. }
  89. case PRODUCT_ACTION.REMOVE_CATE: {
  90. let {data, total} = state.listCate;
  91. for (let i = 0; i < data.length; i++) {
  92. if (data[i].id === action.data.id) {
  93. data.splice(i, 1);
  94. }
  95. }
  96. total = total - 1;
  97. return {
  98. ...state,
  99. listCate: {
  100. ...state.listCate,
  101. data: data,
  102. total: total
  103. }
  104. }
  105. }
  106. case PRODUCT_ACTION.LOAD_LIST_PRODUCT: {
  107. return Object.assign({}, state, {
  108. listProduct: action,
  109. });
  110. }
  111. case PRODUCT_ACTION.LOAD_DETAIL_PRODUCT: {
  112. return Object.assign({}, state, {
  113. productSelected: action.data,
  114. });
  115. }
  116. case FANPAGE_ACTION.CHANGE_SELECTED_FANPAGE: {
  117. return initialState
  118. }
  119. default:
  120. return state
  121. }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement