import { useEffect } from 'react'; import type { FC } from 'react'; import CloseIcon from '@mui/icons-material/Close'; import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, LinearProgress, TextField, Typography } from '@mui/material'; import * as SecurityApi from 'api/security'; import { dialogStyle } from 'CustomTheme'; import { useRequest } from 'alova'; import { MessageBox } from 'components'; import { useI18nContext } from 'i18n/i18n-react'; interface GenerateTokenProps { username?: string; onClose: () => void; } const GenerateToken: FC = ({ username, onClose }) => { const { LL } = useI18nContext(); const open = !!username; const { data: token, send: generateToken } = useRequest(SecurityApi.generateToken(username), { immediate: false }); useEffect(() => { if (open) { void generateToken(); } }, [open]); return ( {LL.ACCESS_TOKEN_FOR() + ' ' + username} {token ? ( <> ) : ( {LL.GENERATING_TOKEN()}… )} ); }; export default GenerateToken;