Files
astuto/app/javascript/reducers/SiteSettings/authenticationReducer.ts

71 lines
1.4 KiB
TypeScript
Raw Normal View History

import {
OAuthSubmitActionTypes,
OAUTH_SUBMIT_START,
OAUTH_SUBMIT_SUCCESS,
OAUTH_SUBMIT_FAILURE,
} from '../../actions/OAuth/submitOAuth';
import {
OAuthUpdateActionTypes,
OAUTH_UPDATE_START,
OAUTH_UPDATE_SUCCESS,
OAUTH_UPDATE_FAILURE,
} from '../../actions/OAuth/updateOAuth';
import {
OAuthDeleteActionTypes,
OAUTH_DELETE_START,
OAUTH_DELETE_SUCCESS,
OAUTH_DELETE_FAILURE,
} from '../../actions/OAuth/deleteOAuth';
export interface SiteSettingsAuthenticationState {
isSubmitting: boolean;
error: string;
}
const initialState: SiteSettingsAuthenticationState = {
isSubmitting: false,
error: '',
};
const siteSettingsAuthenticationReducer = (
state = initialState,
action:
OAuthSubmitActionTypes |
OAuthUpdateActionTypes |
OAuthDeleteActionTypes,
) => {
switch (action.type) {
case OAUTH_SUBMIT_START:
case OAUTH_UPDATE_START:
case OAUTH_DELETE_START:
return {
...state,
isSubmitting: true,
};
case OAUTH_SUBMIT_SUCCESS:
case OAUTH_UPDATE_SUCCESS:
case OAUTH_DELETE_SUCCESS:
return {
...state,
isSubmitting: false,
error: '',
};
case OAUTH_SUBMIT_FAILURE:
case OAUTH_UPDATE_FAILURE:
case OAUTH_DELETE_FAILURE:
return {
...state,
isSubmitting: false,
error: action.error,
};
default:
return state;
}
}
export default siteSettingsAuthenticationReducer;