For example, I have an action:
export function addCar(carType) { return { payload: carType, type: ADD_CAR }; } And the corresponding reducer:
function addCar(state, action) { let { parkingPlace, truckPalce, disabledPlace, cars, sedanPlace } = state; const carType = action.payload; switch (carType) { case carsTypes.sedan: if (sedanPlace === 0 && truckPalce === 0) { swal('Error', 'No places for sedan', 'error'); break; } if (sedanPlace !== 0) { sedanPlace--; parkingPlace--; cars.push({}); break; } if (sedanPlace === 0 && truckPalce !== 0) { truckPalce--; parkingPlace--; cars.push({}); break; } break; case carsTypes.disabled: if (disabledPlace === 0 && sedanPlace === 0 && truckPalce === 0) { swal('Error', 'No places for disabled', 'error'); break; } if (disabledPlace !== 0) { disabledPlace--; parkingPlace--; cars.push({}); break; } if (disabledPlace === 0 && sedanPlace !== 0) { sedanPlace--; parkingPlace--; cars.push({}); break; } if (disabledPlace === 0 && sedanPlace === 0 && truckPalce !== 0) { truckPalce--; parkingPlace--; cars.push({}); break; } case carsTypes.truck: if (truckPalce === 0) { swal('Error', 'No places for truck', 'error'); break; } truckPalce--; parkingPlace--; cars.push({}); break; } const newState = { ...state, parkingPlace, truckPalce, disabledPlace, sedanPlace, cars }; localStorage.setItem('parking', JSON.stringify(newState)); return newState; } Task Description: When a car drives into a parking lot, it has the type Sedan, Disabled or Truck. Only wheelchairs can be parked on the wheelchair. In ordinary places, only ordinary or disabled vehicles can be parked. All types of cars can be parked on the cargo areas, but priority is given to disabled women and trucks in the first place.
So is it worth making logic (switch, conditions) in action?