import 'package:redux/redux.dart'; import 'package:invoiceninja/redux/auth/auth_actions.dart'; import 'package:invoiceninja/redux/auth/auth_state.dart'; Reducer authReducer = combineReducers([ TypedReducer(userLoginRequestReducer), TypedReducer(userLoginSuccessReducer), TypedReducer(userLoginFailureReducer), TypedReducer(userLogoutReducer), ]); AuthState userLoginRequestReducer(AuthState auth, UserLoginRequest action) { return AuthState().copyWith( url: action.url, token: action.token, secret: action.secret, isAuthenticated: false, isAuthenticating: true, ); } AuthState userLoginSuccessReducer(AuthState auth, UserLoginSuccess action) { return AuthState().copyWith( isAuthenticated: true, isAuthenticating: false, user: action.user ); } AuthState userLoginFailureReducer(AuthState auth, UserLoginFailure action) { return AuthState().copyWith( isAuthenticated: false, isAuthenticating: false, error: action.error ); } AuthState userLogoutReducer(AuthState auth, UserLogout action) { return AuthState(); }