Explorar el Código

Move ActivityWithPageTarget to interface file

arvid-e hace 5 meses
padre
commit
0f0ca46287

+ 3 - 6
apps/app/src/client/components/RecentActivity/ActivityListItem.tsx

@@ -1,14 +1,11 @@
-import type { IPageHasId } from '@growi/core';
-
-import type { IActivityHasId } from '~/interfaces/activity';
+import type { ActivityWithPageTarget } from '~/interfaces/activity';
 
 
 import { PageListItemS } from '../PageList/PageListItemS';
 import { PageListItemS } from '../PageList/PageListItemS';
 
 
-// Define the component's props interface
-type ActivityWithPageTarget = IActivityHasId & { target: IPageHasId };
 
 
 export const ActivityListItem = ({ activity }: { activity: ActivityWithPageTarget }): JSX.Element => {
 export const ActivityListItem = ({ activity }: { activity: ActivityWithPageTarget }): JSX.Element => {
 
 
+  const username = activity.user?.username.trim();
   const action = activity.action;
   const action = activity.action;
   const date = new Date(activity.createdAt).toLocaleString();
   const date = new Date(activity.createdAt).toLocaleString();
 
 
@@ -16,7 +13,7 @@ export const ActivityListItem = ({ activity }: { activity: ActivityWithPageTarge
   return (
   return (
     <div className="activity-row">
     <div className="activity-row">
       <p className="text-muted small mb-1">
       <p className="text-muted small mb-1">
-        **{}** performed **{action}** on {date}
+        {username} performed {action} on {date}
       </p>
       </p>
 
 
       <PageListItemS page={activity.target} />
       <PageListItemS page={activity.target} />

+ 1 - 4
apps/app/src/client/components/RecentActivity/RecentActivity.tsx

@@ -2,10 +2,8 @@ import React, {
   useState, useCallback, useEffect, type JSX,
   useState, useCallback, useEffect, type JSX,
 } from 'react';
 } from 'react';
 
 
-import type { IPageHasId } from '@growi/core';
-
 import { toastError } from '~/client/util/toastr';
 import { toastError } from '~/client/util/toastr';
-import type { IActivityHasId } from '~/interfaces/activity';
+import type { IActivityHasId, ActivityWithPageTarget } from '~/interfaces/activity';
 import { useSWRxRecentActivity } from '~/stores/recent-activity';
 import { useSWRxRecentActivity } from '~/stores/recent-activity';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
@@ -16,7 +14,6 @@ import { ActivityListItem } from './ActivityListItem';
 
 
 const logger = loggerFactory('growi:RecentActivity');
 const logger = loggerFactory('growi:RecentActivity');
 
 
-type ActivityWithPageTarget = IActivityHasId & { target: IPageHasId };
 
 
 const hasPageTarget = (activity: IActivityHasId): activity is ActivityWithPageTarget => {
 const hasPageTarget = (activity: IActivityHasId): activity is ActivityWithPageTarget => {
   return activity.target != null
   return activity.target != null

+ 12 - 1
apps/app/src/interfaces/activity.ts

@@ -1,4 +1,10 @@
-import type { HasObjectId, IUser, Ref } from '@growi/core';
+import type {
+  HasObjectId,
+  IPageHasId,
+  IUser,
+  IUserHasId,
+  Ref,
+} from '@growi/core';
 import type { PaginateResult } from './mongoose-utils';
 import type { PaginateResult } from './mongoose-utils';
 
 
 // Model
 // Model
@@ -673,6 +679,11 @@ export type IActivity = {
   snapshot?: ISnapshot;
   snapshot?: ISnapshot;
 };
 };
 
 
+export type ActivityWithPageTarget = IActivityHasId & {
+  target: IPageHasId;
+  user: IUserHasId;
+};
+
 export type IActivityHasId = IActivity & HasObjectId;
 export type IActivityHasId = IActivity & HasObjectId;
 
 
 export type ISearchFilter = {
 export type ISearchFilter = {