|
@@ -1,9 +1,11 @@
|
|
|
-import React, { FC } from 'react';
|
|
|
|
|
|
|
+import React, { FC, useState, useCallback } from 'react';
|
|
|
|
|
|
|
|
import { pagePathUtils } from '@growi/core';
|
|
import { pagePathUtils } from '@growi/core';
|
|
|
import { UserPicture } from '@growi/ui';
|
|
import { UserPicture } from '@growi/ui';
|
|
|
import { format } from 'date-fns';
|
|
import { format } from 'date-fns';
|
|
|
|
|
+import { CopyToClipboard } from 'react-copy-to-clipboard';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
|
+import { Tooltip } from 'reactstrap';
|
|
|
|
|
|
|
|
import { IActivityHasId } from '~/interfaces/activity';
|
|
import { IActivityHasId } from '~/interfaces/activity';
|
|
|
|
|
|
|
@@ -17,6 +19,14 @@ const formatDate = (date) => {
|
|
|
|
|
|
|
|
export const ActivityTable : FC<Props> = (props: Props) => {
|
|
export const ActivityTable : FC<Props> = (props: Props) => {
|
|
|
const { t } = useTranslation();
|
|
const { t } = useTranslation();
|
|
|
|
|
+ const [tooltopOpen, setTooltipOpen] = useState(false);
|
|
|
|
|
+
|
|
|
|
|
+ const showToolTip = useCallback(() => {
|
|
|
|
|
+ setTooltipOpen(true);
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ setTooltipOpen(false);
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ }, [setTooltipOpen]);
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div className="table-responsive text-nowrap h-100">
|
|
<div className="table-responsive text-nowrap h-100">
|
|
@@ -45,7 +55,17 @@ export const ActivityTable : FC<Props> = (props: Props) => {
|
|
|
<td>{formatDate(activity.createdAt)}</td>
|
|
<td>{formatDate(activity.createdAt)}</td>
|
|
|
<td>{t(`admin:audit_log_action.${activity.action}`)}</td>
|
|
<td>{t(`admin:audit_log_action.${activity.action}`)}</td>
|
|
|
<td>{activity.ip}</td>
|
|
<td>{activity.ip}</td>
|
|
|
- <td>{activity.endpoint}</td>
|
|
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {activity.endpoint}
|
|
|
|
|
+ <CopyToClipboard text={activity.endpoint} onCopy={showToolTip}>
|
|
|
|
|
+ <button type="button" className="btn btn-outline-secondary border-0 pull-right" id="tooltipTarget">
|
|
|
|
|
+ <i className="fa fa-clipboard" aria-hidden="true"></i>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </CopyToClipboard>
|
|
|
|
|
+ <Tooltip placement="top" isOpen={tooltopOpen} fade={false} target="tooltipTarget">
|
|
|
|
|
+ copied!
|
|
|
|
|
+ </Tooltip>
|
|
|
|
|
+ </td>
|
|
|
</tr>
|
|
</tr>
|
|
|
);
|
|
);
|
|
|
})}
|
|
})}
|