moved spiffuiv3 to v3 dir w/ burnettk

This commit is contained in:
jasquat 2025-02-12 10:33:00 -05:00
parent 59ae4e2ac0
commit 4703c67084
No known key found for this signature in database
4 changed files with 159 additions and 30 deletions

View File

@ -7,7 +7,7 @@ import { AbilityContext } from './contexts/Can';
import APIErrorProvider from './contexts/APIErrorContext';
import ContainerForExtensions from './ContainerForExtensions';
import PublicRoutes from './routes/PublicRoutes';
import SpiffUIV3 from './routes/SpiffUIV3';
import SpiffUIV3 from './a-spiffui-v3/views/SpiffUIV3';
const queryClient = new QueryClient();

View File

@ -0,0 +1,27 @@
import React from 'react';
import { Box, Typography, Link as MuiLink } from '@mui/material';
import { Link } from 'react-router-dom';
function ComingSoon() {
return (
<Box
sx={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
height: '100vh',
}}
>
<Typography variant="h1" gutterBottom>
Coming Soon
</Typography>
<Typography variant="h6">This feature will be available soon.</Typography>
<MuiLink component={Link} to="/newui" variant="h6" sx={{ mt: 2 }}>
Go back home
</MuiLink>
</Box>
);
}
export default ComingSoon;

View File

@ -0,0 +1,102 @@
import { ArrowForward } from '@mui/icons-material';
import { useCallback, useEffect, useState } from 'react';
import { CircularProgress, Button, Grid, Typography } from '@mui/material';
import { useNavigate, useSearchParams } from 'react-router-dom';
import { AuthenticationOption } from '../interfaces';
import HttpService from '../services/HttpService';
import UserService from '../services/UserService';
export default function Login() {
const navigate = useNavigate();
const [searchParams] = useSearchParams();
const [authenticationOptions, setAuthenticationOptions] = useState<
AuthenticationOption[] | null
>(null);
const originalUrl = searchParams.get('original_url');
const getOriginalUrl = useCallback(() => {
if (originalUrl === '/login') {
return '/';
}
return originalUrl;
}, [originalUrl]);
useEffect(() => {
HttpService.makeCallToBackend({
path: '/authentication-options',
successCallback: setAuthenticationOptions,
});
}, [getOriginalUrl]);
const authenticationOptionButtons = () => {
if (!authenticationOptions) {
return null;
}
const buttons: any = [];
authenticationOptions.forEach((option: AuthenticationOption) => {
buttons.push(
<Button
key={option.identifier}
data-qa={`login-button-${option.identifier}`}
size="large"
variant="contained"
endIcon={<ArrowForward />}
onClick={() => UserService.doLogin(option, getOriginalUrl())}
style={{ margin: '10px' }}
>
{option.label}
</Button>,
);
});
return buttons;
};
const getLoadingIcon = () => {
const style = { margin: '50px 0 50px 50px' };
return (
<CircularProgress
style={style}
/>
);
};
const loginComponents = () => {
return (
<div className="fixed-width-container login-page-spacer">
<Grid container spacing={3}>
<Grid item lg={5} md={4} sm={4}>
<Typography variant="h4" className="with-large-bottom-margin">
Log in to SpiffWorkflow
</Typography>
</Grid>
<Grid item lg={8} md={5} sm={4}>
{authenticationOptionButtons()}
</Grid>
</Grid>
</div>
);
};
if (UserService.isLoggedIn()) {
navigate('/');
return null;
}
if (authenticationOptions === null) {
return (
<div className="fixed-width-container login-page-spacer">
{getLoadingIcon()}
</div>
);
}
if (authenticationOptions !== null) {
if (authenticationOptions.length === 1) {
UserService.doLogin(authenticationOptions[0], getOriginalUrl());
return null;
}
return loginComponents();
}
return null;
}

View File

@ -12,40 +12,40 @@ import {
} from '@mui/material';
import MenuIcon from '@mui/icons-material/Menu';
import { Route, Routes, useLocation } from 'react-router';
import { createSpiffTheme } from '../a-spiffui-v3/assets/theme/SpiffTheme';
import Homepage from '../a-spiffui-v3/views/Homepage';
import '../a-spiffui-v3/assets/styles/transitions.css';
import StartProcess from '../a-spiffui-v3/views/StartProcess/StartProcess';
import Processes from '../a-spiffui-v3/views/StartProcess/Processes';
import StartProcessInstance from '../a-spiffui-v3/views/StartProcess/StartProcessInstance';
import SideNav from '../a-spiffui-v3/components/SideNav';
import { createSpiffTheme } from '../assets/theme/SpiffTheme';
import Homepage from './Homepage';
import '../assets/styles/transitions.css';
import StartProcess from './StartProcess/StartProcess';
import Processes from './StartProcess/Processes';
import StartProcessInstance from './StartProcess/StartProcessInstance';
import SideNav from '../components/SideNav';
import LoginHandler from '../components/LoginHandler';
import Login from './Login';
import InstancesStartedByMe from '../a-spiffui-v3/views/InstancesStartedByMe';
import TaskShow from '../a-spiffui-v3/views/TaskShow/TaskShow';
import ProcessInterstitialPage from '../a-spiffui-v3/views/TaskShow/ProcessInterstitialPage';
import ProcessInstanceProgressPage from '../a-spiffui-v3/views/TaskShow/ProcessInstanceProgressPage';
import InstancesStartedByMe from './InstancesStartedByMe';
import TaskShow from './TaskShow/TaskShow';
import ProcessInterstitialPage from './TaskShow/ProcessInterstitialPage';
import ProcessInstanceProgressPage from './TaskShow/ProcessInstanceProgressPage';
import ErrorDisplay from '../components/ErrorDisplay';
import About from '../a-spiffui-v3/views/About';
import About from './About';
import useAPIError from '../hooks/UseApiError';
import ComingSoon from '../components/ComingSoon';
import MessageListPage from '../a-spiffui-v3/views/MessageListPage';
import DataStoreRoutes from '../a-spiffui-v3/views/DataStoreRoutes';
import DataStoreNew from '../a-spiffui-v3/views/DataStoreNew';
import DataStoreList from '../a-spiffui-v3/views/DataStoreList';
import Configuration from '../a-spiffui-v3/views/Configuration';
import AuthenticationList from '../a-spiffui-v3/views/AuthenticationList';
import SecretList from '../a-spiffui-v3/views/SecretList';
import SecretNew from '../a-spiffui-v3/views/SecretNew';
import SecretShow from '../a-spiffui-v3/views/SecretShow';
import ProcessModelShow from '../a-spiffui-v3/views/ProcessModelShow';
import ProcessModelNew from '../a-spiffui-v3/views/ProcessModelNew';
import ProcessModelEdit from '../a-spiffui-v3/views/ProcessModelEdit'; // Import the edited component
import ProcessModelEditDiagram from '../a-spiffui-v3/views/ProcessModelEditDiagram';
import ReactFormEditor from '../a-spiffui-v3/views/ReactFormEditor'; // Import the new component
import ProcessInstanceRoutes from '../a-spiffui-v3/views/ProcessInstanceRoutes';
import ProcessInstanceShortLink from '../a-spiffui-v3/views/ProcessInstanceShortLink';
import ProcessInstanceList from '../a-spiffui-v3/views/ProcessInstanceList'; // Import the new component
import MessageListPage from './MessageListPage';
import DataStoreRoutes from './DataStoreRoutes';
import DataStoreNew from './DataStoreNew';
import DataStoreList from './DataStoreList';
import Configuration from './Configuration';
import AuthenticationList from './AuthenticationList';
import SecretList from './SecretList';
import SecretNew from './SecretNew';
import SecretShow from './SecretShow';
import ProcessModelShow from './ProcessModelShow';
import ProcessModelNew from './ProcessModelNew';
import ProcessModelEdit from './ProcessModelEdit'; // Import the edited component
import ProcessModelEditDiagram from './ProcessModelEditDiagram';
import ReactFormEditor from './ReactFormEditor'; // Import the new component
import ProcessInstanceRoutes from './ProcessInstanceRoutes';
import ProcessInstanceShortLink from './ProcessInstanceShortLink';
import ProcessInstanceList from './ProcessInstanceList'; // Import the new component
const fadeIn = 'fadeIn';
const fadeOutImmediate = 'fadeOutImmediate';