import 'package:redux/redux.dart'; import '../models/fireMapState.dart'; import 'actions.dart'; final fireMapReducer = combineReducers([ new TypedReducer( _showYourLocationMap), new TypedReducer( _updateYourLocationMapStats), new TypedReducer(_subscribeYourLocationMap), new TypedReducer( _subscribeConfirmYourLocationMap), new TypedReducer( _unsubscribeYourLocationMap), new TypedReducer(_editYourLocationMap), new TypedReducer( _editConfirmYourLocationMap), new TypedReducer( _editCancelYourLocationMap), new TypedReducer( _updateYourLocationMap) ]); FireMapState _updateYourLocationMapStats( FireMapState state, UpdateYourLocationMapStatsAction action) { return state.copyWith( numFires: action.numFires, fires: action.fires, falsePos: action.falsePos, industries: action.industries); } FireMapState _updateYourLocationMap( FireMapState state, UpdateYourLocationMapAction action) { return state.copyWith(yourLocation: action.loc); } FireMapState _showYourLocationMap( FireMapState state, ShowYourLocationMapAction action) { return state.copyWith( status: action.loc.subscribed ? FireMapStatus.unsubscribe : FireMapStatus.view, yourLocation: action.loc); } FireMapState _subscribeYourLocationMap( FireMapState state, SubscribeAction action) { return state.copyWith(status: FireMapStatus.subscriptionConfirm); } FireMapState _subscribeConfirmYourLocationMap( FireMapState state, SubscribeConfirmAction action) { return state.copyWith(status: FireMapStatus.unsubscribe, yourLocation: action.loc); } FireMapState _unsubscribeYourLocationMap( FireMapState state, UnSubscribeAction action) { return state.copyWith(status: FireMapStatus.view, yourLocation: action.loc); } FireMapState _editYourLocationMap( FireMapState state, EditYourLocationAction action) { return state.copyWith(status: FireMapStatus.edit); } FireMapState _editConfirmYourLocationMap( FireMapState state, EditConfirmYourLocationAction action) { return state.copyWith(status: restoreStatusAfterSave(action.loc)); } FireMapState _editCancelYourLocationMap( FireMapState state, EditCancelYourLocationAction action) { return state.copyWith( status: restoreStatusAfterSave(action.loc), yourLocation: action.loc); } FireMapStatus restoreStatusAfterSave(loc) => loc.subscribed ? FireMapStatus.unsubscribe : FireMapStatus.view;