| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import React, { FC, useState, useCallback } from 'react';
- import { useTranslation } from 'react-i18next';
- import { AllSupportedActionType } from '~/interfaces/activity';
- import { useSWRxActivityList } from '~/stores/activity';
- import PaginationWrapper from '../PaginationWrapper';
- import { ActivityTable } from './AuditLog/ActivityTable';
- import { SelectQueryDropdown } from './AuditLog/SelectQueryDropdown';
- const PAGING_LIMIT = 10;
- export const AuditLogManagement: FC = () => {
- const { t } = useTranslation();
- const [activePage, setActivePage] = useState<number>(1);
- const offset = (activePage - 1) * PAGING_LIMIT;
- const [actionQuery, setActionQuery] = useState('');
- const { data: activityListData, error } = useSWRxActivityList(PAGING_LIMIT, offset);
- const activityList = activityListData?.docs != null ? activityListData.docs : [];
- const totalActivityNum = activityListData?.totalDocs != null ? activityListData.totalDocs : 0;
- const isLoading = activityListData === undefined && error == null;
- const setActivePageBySelectedPageNum = useCallback((selectedPageNum: number) => {
- setActivePage(selectedPageNum);
- }, []);
- return (
- <div data-testid="admin-auditlog">
- <h2>{t('AuditLog')}</h2>
- { isLoading
- ? (
- <div className="text-muted text-center mb-5">
- <i className="fa fa-2x fa-spinner fa-pulse mr-1"></i>
- </div>
- )
- : (
- <>
- <SelectQueryDropdown
- dropdownLabel="select_action"
- dropdownItemList={AllSupportedActionType}
- setQueryHandler={setActionQuery}
- />
- <ActivityTable activityList={activityList} />
- <PaginationWrapper
- activePage={activePage}
- changePage={setActivePageBySelectedPageNum}
- totalItemsCount={totalActivityNum}
- pagingLimit={PAGING_LIMIT}
- align="center"
- size="sm"
- />
- </>
- )
- }
- </div>
- );
- };
|