import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_actions.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_state.dart'; Reducer authReducer = combineReducers([ TypedReducer(userLoginLoadedReducer), TypedReducer(userLoginRequestReducer), TypedReducer(oauthLoginRequestReducer), TypedReducer(userLoginSuccessReducer), TypedReducer(userLoginFailureReducer), ]); AuthState userLoginLoadedReducer(AuthState authState, UserLoginLoaded action) { return authState.rebuild((b) => b ..isInitialized = true ..url = action.url ?? '' ..secret = action.secret ?? '' ..email = action.email ?? ''); } AuthState userLoginRequestReducer( AuthState authState, UserLoginRequest action) { return authState.rebuild((b) => b ..error = null ..url = formatApiUrlMachine(action.url) ..secret = action.secret ..email = action.email ..password = action.password); } AuthState oauthLoginRequestReducer( AuthState authState, OAuthLoginRequest action) { return authState.rebuild((b) => b ..error = null ..url = formatApiUrlMachine(action.url) ..secret = action.secret); } AuthState userLoginSuccessReducer( AuthState authState, UserLoginSuccess action) { return authState.rebuild((b) => b ..isAuthenticated = true ..password = ''); } AuthState userLoginFailureReducer( AuthState authState, UserLoginFailure action) { return authState.rebuild((b) => b..error = action.error); }