import React, { type JSX, useCallback, useEffect } from 'react';
import Link from 'next/link';
import { useTranslation } from 'next-i18next';
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')}