import type { IPersonalAccessToken, Serialized } from '@rocket.chat/core-typings'; import { ButtonGroup, IconButton } from '@rocket.chat/fuselage'; import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client'; import { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime'; export type AccountTokensRowProps = { isMedium: boolean; onRegenerate: (name: string) => void; onRemove: (name: string) => void; } & Serialized>; const AccountTokensRow = ({ bypassTwoFactor, createdAt, isMedium, lastTokenPart, name, onRegenerate, onRemove }: AccountTokensRowProps) => { const { t } = useTranslation(); const formatDateAndTime = useFormatDateAndTime(); const handleRegenerate = useCallback(() => onRegenerate(name), [name, onRegenerate]); const handleRemove = useCallback(() => onRemove(name), [name, onRemove]); return ( {name} {isMedium && {formatDateAndTime(createdAt)}} ...{lastTokenPart} {bypassTwoFactor ? t('Ignore') : t('Require')} ); }; export default AccountTokensRow;