// just logged in or there has been a successful link operation
const data = services.linkAccountService.getLinkOpStatus();
if (!matchTokenRoute(location.pathname) && (!matchFedTokenRoute(location.pathname)) && data === undefined) {
- dispatch<any>(cancelLinking());
+ dispatch<any>(cancelLinking()).then(() => {
+ dispatch<any>(init(config));
+ });
+ }
+ else {
+ dispatch<any>(init(config));
}
+};
+
+const init = (config: Config) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
const user = services.authService.getUser();
const token = services.authService.getApiToken();
const homeCluster = services.authService.getHomeCluster();
<CircularProgress/>
</Grid>
</Grid> }
- { status === LinkAccountPanelStatus.INITIAL && targetUser && <div>
+ { !isProcessing && status === LinkAccountPanelStatus.INITIAL && targetUser && <div>
{ isLocalUser(targetUser.uuid, localCluster) ? <Grid container spacing={24}>
<Grid container item direction="column" spacing={24}>
<Grid item>
</Grid>
</Grid>}
</div> }
- { (status === LinkAccountPanelStatus.LINKING || status === LinkAccountPanelStatus.ERROR) && userToLink && targetUser &&
+ { !isProcessing && (status === LinkAccountPanelStatus.LINKING || status === LinkAccountPanelStatus.ERROR) && userToLink && targetUser &&
<Grid container spacing={24}>
{ status === LinkAccountPanelStatus.LINKING && <Grid container item direction="column" spacing={24}>
<Grid item>