Просмотр исходного кода

improve handlint onEditorsUpdated

Yuki Takei 1 год назад
Родитель
Сommit
ce6767ac13

+ 4 - 2
packages/editor/src/client/stores/use-collaborative-editor-mode.ts

@@ -67,7 +67,7 @@ export const useCollaborativeEditorMode = (
 
   // Setup provider
   useEffect(() => {
-    if (provider != null || pageId == null || ydoc == null || socket == null || onEditorsUpdated == null) {
+    if (provider != null || pageId == null || ydoc == null || socket == null) {
       return;
     }
 
@@ -91,7 +91,7 @@ export const useCollaborativeEditorMode = (
     socketIOProvider.awareness.setLocalStateField('user', userLocalState);
 
     socketIOProvider.on('sync', (isSync: boolean) => {
-      if (isSync) {
+      if (isSync && onEditorsUpdated != null) {
         const userList: IUserHasId[] = Array.from(socketIOProvider.awareness.states.values(), value => value.user.user && value.user.user);
         onEditorsUpdated(userList);
       }
@@ -99,6 +99,8 @@ export const useCollaborativeEditorMode = (
 
     // update args type see: SocketIOProvider.Awareness.awarenessUpdate
     socketIOProvider.awareness.on('update', (update: { added: unknown[]; removed: unknown[]; }) => {
+      if (onEditorsUpdated == null) return;
+
       const { added, removed } = update;
       if (added.length > 0 || removed.length > 0) {
         const userList: IUserHasId[] = Array.from(socketIOProvider.awareness.states.values(), value => value.user.user && value.user.user);