import type { FC } from 'react'; import React, { useState, useCallback } from 'react'; import { isPopulated } from '@growi/core'; import { pagePathUtils } from '@growi/core/dist/utils'; import { UserPicture } from '@growi/ui/dist/components'; import { format } from 'date-fns/format'; import { CopyToClipboard } from 'react-copy-to-clipboard'; import { useTranslation } from 'react-i18next'; import { Tooltip } from 'reactstrap'; import type { IActivityHasId } from '~/interfaces/activity'; type Props = { activityList: IActivityHasId[] } const formatDate = (date) => { return format(new Date(date), 'yyyy/MM/dd HH:mm:ss'); }; export const ActivityTable : FC = (props: Props) => { const { t } = useTranslation(); const [tooltopOpen, setTooltipOpen] = useState(false); const showToolTip = useCallback(() => { setTooltipOpen(true); setTimeout(() => { setTooltipOpen(false); }, 1000); }, [setTooltipOpen]); return (
{props.activityList.map((activity) => { return ( ); })}
{t('admin:audit_log_management.user')} {t('admin:audit_log_management.date')} {t('admin:audit_log_management.action')} {t('admin:audit_log_management.ip')} {t('admin:audit_log_management.url')}
{ activity.user != null && ( <> {activity.snapshot?.username} )} {formatDate(activity.createdAt)} {t(`admin:audit_log_action.${activity.action}`)} {activity.ip} {activity.endpoint} copied!
); };