import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Modal, ModalHeader, ModalBody, ModalFooter, Button, } from 'reactstrap'; import type { IResGetAccessToken } from '~/interfaces/access-token'; type AccessTokenListProps = { accessTokens: IResGetAccessToken[]; deleteHandler?: (tokenId: string) => void; } export const AccessTokenList = React.memo((props: AccessTokenListProps): JSX.Element => { const { t } = useTranslation(); const { accessTokens, deleteHandler } = props; const [tokenToDelete, setTokenToDelete] = useState(null); const handleDeleteClick = (tokenId: string) => { setTokenToDelete(tokenId); }; const handleConfirmDelete = () => { if (tokenToDelete != null && deleteHandler != null) { deleteHandler(tokenToDelete); setTokenToDelete(null); } }; const toggleModal = () => { setTokenToDelete(null); }; return ( <>
{(accessTokens.length === 0) ? ( ) : ( <>{ accessTokens.map(token => ( )) } )}
{t('page_me_access_token.description')} {t('page_me_access_token.expiredAt')} {t('page_me_access_token.scope')} {t('page_me_access_token.action')}
{t('page_me_access_token.no_tokens_found')}
{token.description} {token.expiredAt.toString().split('T')[0]} {token.scopes.join(', ')}
{/* Confirmation Modal using Reactstrap */} warning {t('Warning')}

{t('page_me_access_token.modal.message')}

{t('page_me_access_token.modal.alert')}

); }); AccessTokenList.displayName = 'AccessTokenList';