import useSWR from 'swr';
import { useState } from 'react';
import { useTranslation } from 'next-i18next';
import { EyeIcon } from '@heroicons/react/24/outline';
import type { WebhookEventLog } from '../types';
import { fetcher, addQueryParamsToPath } from '../utils';
import { DirectoryTab } from '../dsync';
import { usePaginate, useDirectory } from '../hooks';
import { TableBodyType } from '../shared/Table';
import {
Loading,
Table,
EmptyState,
Error,
Pagination,
PageHeader,
pageLimit,
DeleteConfirmationModal,
} from '../shared';
import { ButtonDanger } from '../shared/ButtonDanger';
import { useRouter } from '../hooks';
export const DirectoryWebhookLogs = ({
urls,
onView,
onDelete,
}: {
urls: { getEvents: string; getDirectory: string; tabBase: string; deleteEvents?: string };
onView?: (event: WebhookEventLog) => void;
onDelete?: () => void;
}) => {
const { router } = useRouter();
const { t } = useTranslation('common');
const [delModalVisible, setDelModalVisible] = useState(false);
const { paginate, setPaginate, pageTokenMap } = usePaginate(router!);
const params = {
offset: paginate.offset,
limit: pageLimit,
};
// For DynamoDB
if (paginate.offset > 0 && pageTokenMap[paginate.offset - pageLimit]) {
params['pageToken'] = pageTokenMap[paginate.offset - pageLimit];
}
const getUrl = addQueryParamsToPath(urls.getEvents, params);
const { directory, isLoadingDirectory, directoryError } = useDirectory(urls.getDirectory);
const { data, isLoading, error } = useSWR<{ data: WebhookEventLog[] }>(getUrl, fetcher);
if (isLoading || isLoadingDirectory) {
return