import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Button, Modal, ModalBody, ModalFooter, ModalHeader } 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';