Преглед изворни кода

Merge branch 'feat/171499-activity-log' into fix/173307-can-only-see-logged-in-users-activity-log

arvid-e пре 5 месеци
родитељ
комит
8a3f366a41

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

@@ -1,8 +1,6 @@
-import type { ActivityWithPageTarget, SupportedActivityActionType } from '~/interfaces/activity';
+import type { ActivityHasUserId, SupportedActivityActionType } from '~/interfaces/activity';
 import { ActivityLogActions } from '~/interfaces/activity';
 
-import { PageListItemS } from '../PageList/PageListItemS';
-
 export const ActivityActionTranslationMap: Record<
   SupportedActivityActionType,
   string
@@ -10,13 +8,12 @@ export const ActivityActionTranslationMap: Record<
   [ActivityLogActions.ACTION_PAGE_CREATE]: 'created a page',
   [ActivityLogActions.ACTION_PAGE_UPDATE]: 'updated a page',
   [ActivityLogActions.ACTION_PAGE_DELETE]: 'deleted a page',
+  [ActivityLogActions.ACTION_PAGE_DELETE_COMPLETELY]: 'deleted a page',
   [ActivityLogActions.ACTION_PAGE_RENAME]: 'renamed a page',
   [ActivityLogActions.ACTION_PAGE_REVERT]: 'reverted a page',
   [ActivityLogActions.ACTION_PAGE_DUPLICATE]: 'duplicated a page',
+  [ActivityLogActions.ACTION_PAGE_LIKE]: 'liked a page',
   [ActivityLogActions.ACTION_COMMENT_CREATE]: 'posted a comment',
-  [ActivityLogActions.ACTION_COMMENT_UPDATE]: 'edited a comment',
-  [ActivityLogActions.ACTION_COMMENT_REMOVE]: 'deleted a comment',
-  [ActivityLogActions.ACTION_ATTACHMENT_ADD]: 'added an attachment',
 };
 
 const translateAction = (action: SupportedActivityActionType): string => {
@@ -24,7 +21,7 @@ const translateAction = (action: SupportedActivityActionType): string => {
 };
 
 
-export const ActivityListItem = ({ activity }: { activity: ActivityWithPageTarget }): JSX.Element => {
+export const ActivityListItem = ({ activity }: { activity: ActivityHasUserId }): JSX.Element => {
   const username = activity.user?.username;
   const action = activity.action as SupportedActivityActionType;
   const date = new Date(activity.createdAt).toLocaleString();
@@ -34,8 +31,6 @@ export const ActivityListItem = ({ activity }: { activity: ActivityWithPageTarge
       <p className="text-muted small mb-1">
         {username} {translateAction(action)} on {date}
       </p>
-
-      <PageListItemS page={activity.target} />
     </div>
   );
 };

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

@@ -3,7 +3,7 @@ import React, {
 } from 'react';
 
 import { toastError } from '~/client/util/toastr';
-import type { IActivityHasId, ActivityWithPageTarget } from '~/interfaces/activity';
+import type { IActivityHasId, ActivityHasUserId } from '~/interfaces/activity';
 import { useSWRxRecentActivity } from '~/stores/recent-activity';
 import loggerFactory from '~/utils/logger';
 
@@ -18,16 +18,15 @@ type RecentActivityProps = {
   userId: string,
 }
 
-const hasPageTarget = (activity: IActivityHasId): activity is ActivityWithPageTarget => {
-  return activity.target != null
-        && typeof activity.target === 'object'
-        && '_id' in activity.target;
+const hasUser = (activity: IActivityHasId): activity is ActivityHasUserId => {
+  return activity.user != null
+        && typeof activity.user === 'object';
 };
 
 export const RecentActivity = (props: RecentActivityProps): JSX.Element => {
   const { userId } = props;
 
-  const [activities, setActivities] = useState<ActivityWithPageTarget[]>([]);
+  const [activities, setActivities] = useState<ActivityHasUserId[]>([]);
   const [activePage, setActivePage] = useState(1);
   const [limit] = useState(10);
   const [offset, setOffset] = useState(0);
@@ -50,7 +49,7 @@ export const RecentActivity = (props: RecentActivityProps): JSX.Element => {
 
     if (paginatedData) {
       const activitiesWithPages = paginatedData.docs
-        .filter(hasPageTarget);
+        .filter(hasUser);
 
       setActivities(activitiesWithPages);
     }

+ 4 - 5
apps/app/src/interfaces/activity.ts

@@ -384,6 +384,7 @@ export const SupportedAction = {
 
 // Action required for notification
 export const EssentialActionGroup = {
+  ACTION_PAGE_CREATE,
   ACTION_PAGE_LIKE,
   ACTION_PAGE_BOOKMARK,
   ACTION_PAGE_UPDATE,
@@ -581,11 +582,10 @@ export const ActivityLogActions = {
   ACTION_PAGE_RENAME,
   ACTION_PAGE_DUPLICATE,
   ACTION_PAGE_DELETE,
+  ACTION_PAGE_DELETE_COMPLETELY,
   ACTION_PAGE_REVERT,
+  ACTION_PAGE_LIKE,
   ACTION_COMMENT_CREATE,
-  ACTION_COMMENT_UPDATE,
-  ACTION_COMMENT_REMOVE,
-  ACTION_ATTACHMENT_ADD,
 } as const;
 
 /*
@@ -682,8 +682,7 @@ export type IActivity = {
   snapshot?: ISnapshot;
 };
 
-export type ActivityWithPageTarget = IActivityHasId & {
-  target: IPageHasId;
+export type ActivityHasUserId = IActivityHasId & {
   user: IUserHasId;
 };