54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
import PropTypes from 'prop-types';
|
|
import Dialog from '@mui/material/Dialog';
|
|
import DialogTitle from '@mui/material/DialogTitle';
|
|
import List from '@mui/material/List';
|
|
import ListItem from '@mui/material/ListItem';
|
|
import ListItemButton from '@mui/material/ListItemButton';
|
|
import ListItemText from '@mui/material/ListItemText';
|
|
import * as React from 'react';
|
|
import useAppAuthClients from 'hooks/useAppAuthClients';
|
|
import useFormatMessage from 'hooks/useFormatMessage';
|
|
|
|
function AppAuthClientsDialog(props) {
|
|
const { appKey, onClientClick, onClose } = props;
|
|
const { data: appAuthClients } = useAppAuthClients(appKey);
|
|
|
|
const formatMessage = useFormatMessage();
|
|
|
|
React.useEffect(
|
|
function autoAuthenticateSingleClient() {
|
|
if (appAuthClients?.data.length === 1) {
|
|
onClientClick(appAuthClients.data[0].id);
|
|
}
|
|
},
|
|
[appAuthClients?.data],
|
|
);
|
|
|
|
if (!appAuthClients?.data.length || appAuthClients?.data.length === 1)
|
|
return <React.Fragment />;
|
|
|
|
return (
|
|
<Dialog onClose={onClose} open={true}>
|
|
<DialogTitle>{formatMessage('appAuthClientsDialog.title')}</DialogTitle>
|
|
|
|
<List sx={{ pt: 0 }}>
|
|
{appAuthClients.data.map((appAuthClient) => (
|
|
<ListItem disableGutters key={appAuthClient.id}>
|
|
<ListItemButton onClick={() => onClientClick(appAuthClient.id)}>
|
|
<ListItemText primary={appAuthClient.name} />
|
|
</ListItemButton>
|
|
</ListItem>
|
|
))}
|
|
</List>
|
|
</Dialog>
|
|
);
|
|
}
|
|
|
|
AppAuthClientsDialog.propTypes = {
|
|
appKey: PropTypes.string.isRequired,
|
|
onClientClick: PropTypes.func.isRequired,
|
|
onClose: PropTypes.func.isRequired,
|
|
};
|
|
|
|
export default AppAuthClientsDialog;
|