Taichi Masuyama 4 лет назад
Родитель
Сommit
82a7936434
2 измененных файлов с 7 добавлено и 3 удалено
  1. 4 0
      packages/app/src/interfaces/websocket.ts
  2. 3 3
      packages/app/src/server/service/page.ts

+ 4 - 0
packages/app/src/interfaces/websocket.ts

@@ -5,4 +5,8 @@ export type SocketNamespace = typeof SocketNamespace[keyof typeof SocketNamespac
 
 
 type PagePath = string;
 type PagePath = string;
 type DescendantCount = number;
 type DescendantCount = number;
+/**
+ * Data of updateDescCount when used through socket.io. Convert to UpdateDescCountData type when use with swr cache.
+ */
+export type UpdateDescCountRawData = Record<PagePath, DescendantCount>;
 export type UpdateDescCountData = Map<PagePath, DescendantCount>;
 export type UpdateDescCountData = Map<PagePath, DescendantCount>;

+ 3 - 3
packages/app/src/server/service/page.ts

@@ -21,7 +21,7 @@ import { ObjectIdLike } from '../interfaces/mongoose-utils';
 import { IUserHasId } from '~/interfaces/user';
 import { IUserHasId } from '~/interfaces/user';
 import { Ref } from '~/interfaces/common';
 import { Ref } from '~/interfaces/common';
 import { HasObjectId } from '~/interfaces/has-object-id';
 import { HasObjectId } from '~/interfaces/has-object-id';
-import { SocketNamespace, UpdateDescCountData } from '~/interfaces/websocket';
+import { SocketNamespace, UpdateDescCountRawData } from '~/interfaces/websocket';
 import PageOperation, { PageActionStage, PageActionType } from '../models/page-operation';
 import PageOperation, { PageActionStage, PageActionType } from '../models/page-operation';
 import ActivityDefine from '../util/activityDefine';
 import ActivityDefine from '../util/activityDefine';
 
 
@@ -2639,11 +2639,11 @@ class PageService {
 
 
     await Page.incrementDescendantCountOfPageIds(ancestorPageIds, inc);
     await Page.incrementDescendantCountOfPageIds(ancestorPageIds, inc);
 
 
-    const updateDescCountData: UpdateDescCountData = new Map(ancestors.map(p => [p.path, p.descendantCount + inc]));
+    const updateDescCountData: UpdateDescCountRawData = Object.fromEntries(ancestors.map(p => [p.path, p.descendantCount + inc]));
     this.emitUpdateDescCount(updateDescCountData);
     this.emitUpdateDescCount(updateDescCountData);
   }
   }
 
 
-  private emitUpdateDescCount(data: UpdateDescCountData): void {
+  private emitUpdateDescCount(data: UpdateDescCountRawData): void {
     const socket = this.crowi.socketIoService.getDefaultSocket();
     const socket = this.crowi.socketIoService.getDefaultSocket();
 
 
     socket.emit(SocketNamespace.UpdateDescCount, data);
     socket.emit(SocketNamespace.UpdateDescCount, data);