import React, { useCallback } from 'react'; import { IAdminExternalAccount } from '@growi/core'; import dateFnsFormat from 'date-fns/format'; import { useTranslation } from 'next-i18next'; import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; import { withUnstatedContainers } from '../../UnstatedUtils'; import styles from './ExternalAccountTable.module.scss'; type ExternalAccountTableProps = { adminExternalAccountsContainer: AdminExternalAccountsContainer, } const ExternalAccountTable = (props: ExternalAccountTableProps): JSX.Element => { const { t } = useTranslation('admin'); const { adminExternalAccountsContainer } = props; const removeExtenalAccount = useCallback(async(externalAccountId) => { try { const accountId = await adminExternalAccountsContainer.removeExternalAccountById(externalAccountId); toastSuccess(t('toaster.remove_external_user_success', { accountId })); } catch (err) { toastError(err); } }, [adminExternalAccountsContainer, t]); return (
| {t('user_management.authentication_provider')} | accountId |
{t('user_management.related_username')}username |
{t('user_management.password_setting')} {/* TODO: Enable popper */} | {t('Created')} | |
|---|---|---|---|---|---|
| {ea.providerType} | {ea.accountId} | {ea.user.username} | {ea.user.password ? ({t('user_management.set')}) : ({t('user_management.unset')}) } | {dateFnsFormat(new Date(ea.createdAt), 'yyyy-MM-dd')} |
|