import React, { useCallback, useEffect, type JSX } from 'react'; import { useTranslation } from 'next-i18next'; import Link from 'next/link'; import AdminExternalAccountsContainer from '~/client/services/AdminExternalAccountsContainer'; import { toastError } from '~/client/util/toastr'; import PaginationWrapper from '../PaginationWrapper'; import { withUnstatedContainers } from '../UnstatedUtils'; import ExternalAccountTable from './Users/ExternalAccountTable'; type ManageExternalAccountProps = { adminExternalAccountsContainer: AdminExternalAccountsContainer, } const ManageExternalAccount = (props: ManageExternalAccountProps): JSX.Element => { const { t } = useTranslation(); const { adminExternalAccountsContainer } = props; const { activePage, totalAccounts, pagingLimit } = adminExternalAccountsContainer.state; const externalAccountPageHandler = useCallback(async(selectedPage) => { try { await adminExternalAccountsContainer.retrieveExternalAccountsByPagingNum(selectedPage); } catch (err) { toastError(err); } }, [adminExternalAccountsContainer]); // for Next routing useEffect(() => { externalAccountPageHandler(1); }, [externalAccountPageHandler]); const pager = ( ); return ( <>

{t('admin:user_management.back_to_user_management')}

{t('admin:user_management.external_account_list')}

{(totalAccounts !== 0) ? ( <> {pager} {pager} ) : ( <> { t('admin:user_management.external_account_none') } ) } ); }; const ManageExternalAccountWrapper = withUnstatedContainers(ManageExternalAccount, [AdminExternalAccountsContainer]); export default ManageExternalAccountWrapper;