}
export interface LinkAccountPanelState {
+ selectedCluster: string | undefined;
originatingUser: OriginatingUser | undefined;
targetUser: UserResource | undefined;
targetUserToken: string | undefined;
userToLinkToken: string | undefined;
status: LinkAccountPanelStatus;
error: LinkAccountPanelError;
+ isProcessing: boolean;
}
const initialState = {
+ selectedCluster: undefined,
originatingUser: OriginatingUser.NONE,
targetUser: undefined,
targetUserToken: undefined,
userToLink: undefined,
userToLinkToken: undefined,
+ isProcessing: false,
status: LinkAccountPanelStatus.NONE,
error: LinkAccountPanelError.NONE
};
linkAccountPanelActions.match(action, {
default: () => state,
LINK_INIT: ({ targetUser }) => ({
+ ...state,
targetUser, targetUserToken: undefined,
userToLink: undefined, userToLinkToken: undefined,
status: LinkAccountPanelStatus.INITIAL, error: LinkAccountPanelError.NONE, originatingUser: OriginatingUser.NONE
}),
LINK_LOAD: ({ originatingUser, userToLink, targetUser, targetUserToken, userToLinkToken}) => ({
+ ...state,
originatingUser,
targetUser, targetUserToken,
userToLink, userToLinkToken,
status: LinkAccountPanelStatus.LINKING, error: LinkAccountPanelError.NONE
}),
- LINK_INVALID: ({originatingUser, targetUser, userToLink, error}) => ({
+ LINK_INVALID: ({ originatingUser, targetUser, userToLink, error }) => ({
+ ...state,
originatingUser,
targetUser, targetUserToken: undefined,
userToLink, userToLinkToken: undefined,
error, status: LinkAccountPanelStatus.ERROR
}),
+ SET_SELECTED_CLUSTER: ({ selectedCluster }) => ({
+ ...state, selectedCluster
+ }),
+ SET_IS_PROCESSING: ({ isProcessing }) =>({
+ ...state,
+ isProcessing
+ }),
HAS_SESSION_DATA: () => ({
...state, status: LinkAccountPanelStatus.HAS_SESSION_DATA
})