evoleasing-account/reducers/dealsReducer.js
2023-11-03 17:14:01 +03:00

120 lines
2.2 KiB
JavaScript

import { HYDRATE } from 'next-redux-wrapper';
import * as actionTypes from '../constants/actionTypes';
import initialState from "./initialState";
const dealsReducer = (state = initialState.deals, action) =>
{
switch (action.type)
{
case actionTypes.DEALS_LOADED:
{
return {
...state,
loaded: action.data.loaded,
};
}
case actionTypes.DEALS_LIST:
{
console.log("actionTypes.DEALS_LIST", actionTypes.DEALS_LIST, { action });
return {
...state,
list: action.data.list,
last: action.data.last,
};
}
case actionTypes.DEAL_LOADED:
{
return {
...state,
deal: { ...state.deal, ...{ loaded: action.data.loaded, } },
};
}
case actionTypes.DEAL_OFFERS_LIST:
{
console.log("ACTION", actionTypes.DEAL_OFFERS_LIST, { action });
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ offers: action.data.list } };
return {
...state,
details: details,
};
}
case actionTypes.DEAL_DOCUMENTS_LIST:
{
console.log("ACTION", actionTypes.DEAL_DOCUMENTS_LIST, { action });
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ documents: action.data.documents, uploaded: action.data.uploaded } };
return {
...state,
details: details,
};
}
case actionTypes.DEAL_CONTRACTS_LIST:
{
const details = state.details;
details[action.data.deal_id] = { ...details[action.data.deal_id], ...{ contracts: action.data.list } };
return {
...state,
details: details,
};
}
case actionTypes.DEALS_RESET:
{
return {
loaded: false,
list: undefined,
deal: {
loaded: false,
offers: {
list: undefined,
filtered: undefined,
},
documents: {
list: undefined,
},
contracts: {
list: undefined,
},
},
};
}
case actionTypes.DEAL_RESET:
{
return {
deal: {
loaded: false,
offers: {
list: undefined,
filtered: undefined,
},
documents: {
list: undefined,
},
contracts: {
list: undefined,
},
},
};
}
default: {
return state;
}
}
};
export default dealsReducer;