Skip to content

Instantly share code, notes, and snippets.

@rtvsk
Created March 13, 2020 07:37
Show Gist options
  • Save rtvsk/ec82814445d6e4b420d539d6f1f4f4b3 to your computer and use it in GitHub Desktop.
Save rtvsk/ec82814445d6e4b420d539d6f1f4f4b3 to your computer and use it in GitHub Desktop.
import * as types from '../actionTypes/constants';
const initialState = {
user: {},
trackingCompanies: [],
trackingCompaniesInns: [],
trackingAddStatus: {},
trackingRemoveStatus: {},
trackingCompaniesDetails: [],
}
const tracking = (state = initialState, action) => {
switch (action.type) {
case types.ACTIVATE_USER_FOR_TRACKING:
case types.GET_USER_TRACKING_DETAILS:
return {
...state,
user: { ...state.user, ...action.payload.data }
}
case types.GET_TRACKING_COMPANY_DETAILS:
return {
...state,
trackingCompanies: action.payload.data.trackingCompanies,
trackingCompaniesInns: action.payload.data.trackingInns,
}
case types.ADD_COMPANY_TRACKING:
return {
...state,
trackingStatus: action.payload.data,
trackingCompaniesInns: [
...state.trackingCompaniesInns,
Number(action.payload.data.company_inn_adding_to_tracking),
],
}
case types.REMOVE_COMPANY_TRACKING:
return {
...state,
trackingRemoveStatus: action.payload.data,
trackingCompaniesInns: [
...state.trackingCompaniesInns.filter(i => i !== Number(action.payload.data.removed_company_inn))
],
trackingCompaniesDetails: [
...state.trackingCompaniesDetails.filter(d => d.inn !== action.payload.removedCompanyInn)
],
}
case types.SET_TRACKING_COMPANIES_DETAILS:
return {
...state,
trackingCompaniesDetails: action.payload.companyTrackingDetailsDataList,
}
case types.RESET_TRACKING_COMPANIES_DETAILS:
return {
...state,
trackingCompaniesDetails: [],
trackingCompaniesInns: [],
}
default:
return state;
}
}
export default tracking;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment