import { BUNKER_ADJUSTMENT } from 'app/modules/bunkerAdjustment/store/bunkerAdjustment.constants'; import { AnyAction } from 'redux'; import { BunkerAdjustmentState } from './bunkerAdjustment.types'; export const defaultBunkerAdjustment: BunkerAdjustmentState = { periods: [], currentPeriod: '', keyFigures: null, calculations: { consumption: null, summary: null, }, trends: [], }; const bunkerAdjustmentReducer = (state = defaultBunkerAdjustment, action: AnyAction = { type: '' }) => { switch (action.type) { case BUNKER_ADJUSTMENT.FETCH_AVAILABILITY_SUCCESS: return { ...state, periods: action.payload, }; case BUNKER_ADJUSTMENT.SET_CURRENT_PERIOD: return { ...state, currentPeriod: action.payload, }; case BUNKER_ADJUSTMENT.RESET_BUNKER_ADJUSTMENT: return { ...defaultBunkerAdjustment, }; case BUNKER_ADJUSTMENT.FETCH_FIGURES_REQUEST: return { ...state, keyFigures: defaultBunkerAdjustment.keyFigures, calculations: { consumption: defaultBunkerAdjustment.calculations.consumption, summary: defaultBunkerAdjustment.calculations.summary, }, }; case BUNKER_ADJUSTMENT.FETCH_FIGURES_SUCCESS: return { ...state, keyFigures: action.payload.keyFigures, calculations: { consumption: action.payload.consumption, summary: action.payload.summary, }, }; case BUNKER_ADJUSTMENT.FETCH_TRENDS_REQUEST: return { ...state, trends: defaultBunkerAdjustment.trends, }; case BUNKER_ADJUSTMENT.FETCH_TRENDS_SUCCESS: return { ...state, trends: action.payload, }; default: return state; } }; export { bunkerAdjustmentReducer };