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 = (
{t('admin:user_management.back_to_user_management')}