show loading screen on login page instead of Log in to spiff when inappropriate w/ burnettk

This commit is contained in:
jasquat 2023-11-09 12:12:53 -05:00
parent b8cfa4fd3c
commit 52b90dd28a
1 changed files with 40 additions and 9 deletions

View File

@ -1,6 +1,6 @@
import { ArrowRight } from '@carbon/icons-react'; import { ArrowRight } from '@carbon/icons-react';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { Button, Grid, Column } from '@carbon/react'; import { Loading, Button, Grid, Column } from '@carbon/react';
import { useSearchParams } from 'react-router-dom'; import { useSearchParams } from 'react-router-dom';
import { AuthenticationOption } from '../interfaces'; import { AuthenticationOption } from '../interfaces';
import HttpService from '../services/HttpService'; import HttpService from '../services/HttpService';
@ -23,13 +23,6 @@ export default function Login() {
return null; return null;
} }
const buttons: any = []; const buttons: any = [];
if (authenticationOptions.length === 1) {
UserService.doLogin(
authenticationOptions[0],
searchParams.get('original_url')
);
return null;
}
authenticationOptions.forEach((option: AuthenticationOption) => { authenticationOptions.forEach((option: AuthenticationOption) => {
buttons.push( buttons.push(
<Button <Button
@ -48,7 +41,30 @@ export default function Login() {
return buttons; return buttons;
}; };
if (authenticationOptions !== null) { const doLoginIfAppropriate = () => {
if (!authenticationOptions) {
return;
}
if (authenticationOptions.length === 1) {
UserService.doLogin(
authenticationOptions[0],
searchParams.get('original_url')
);
}
};
const getLoadingIcon = () => {
const style = { margin: '50px 0 50px 50px' };
return (
<Loading
description="Active loading indicator"
withOverlay={false}
style={style}
/>
);
};
const loginComponments = () => {
return ( return (
<div className="fixed-width-container login-page-spacer"> <div className="fixed-width-container login-page-spacer">
<Grid> <Grid>
@ -71,6 +87,21 @@ export default function Login() {
</Grid> </Grid>
</div> </div>
); );
};
if (authenticationOptions === null || authenticationOptions.length < 2) {
doLoginIfAppropriate();
return (
<div className="fixed-width-container login-page-spacer">
{getLoadingIcon()}
</div>
);
} }
if (authenticationOptions !== null) {
doLoginIfAppropriate();
return loginComponments();
}
return null; return null;
} }