import { Table } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
import React, { useMemo, useCallback, useState } from 'react';
import GenericTable from '../../../components/GenericTable';
import { useRoute } from '../../../contexts/RouterContext';
import { useTranslation } from '../../../contexts/TranslationContext';
import { useEndpointData } from '../../../hooks/useEndpointData';
import SendTestButton from './SendTestButton';
const useQuery = ({ itemsPerPage, current }, [column, direction]) =>
useMemo(
() => ({
sort: JSON.stringify({ [column]: direction === 'asc' ? 1 : -1 }),
...(itemsPerPage && { count: itemsPerPage }),
...(current && { offset: current }),
}),
[column, current, direction, itemsPerPage],
);
function EmailInboxTable() {
const t = useTranslation();
const [params, setParams] = useState({ current: 0, itemsPerPage: 25 });
const [sort] = useState(['name', 'asc']);
const debouncedParams = useDebouncedValue(params, 500);
const debouncedSort = useDebouncedValue(sort, 500);
const query = useQuery(debouncedParams, debouncedSort);
const router = useRoute('admin-email-inboxes');
const onClick = useCallback(
(_id) => () =>
router.push({
context: 'edit',
_id,
}),
[router],
);
const header = useMemo(
() =>
[