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

Added conditions when useSetupGlobalAdminSocket

Taichi Masuyama 3 лет назад
Родитель
Сommit
7166df4a04
2 измененных файлов с 13 добавлено и 8 удалено
  1. 2 1
      packages/app/src/client/services/ContextExtractor.tsx
  2. 11 7
      packages/app/src/stores/websocket.tsx

+ 2 - 1
packages/app/src/client/services/ContextExtractor.tsx

@@ -173,7 +173,8 @@ const ContextExtractorOnce: FC = () => {
 
 
   // Global Socket
   // Global Socket
   useSetupGlobalSocket();
   useSetupGlobalSocket();
-  useSetupGlobalAdminSocket();
+  const shouldInitAdminSock = !!currentUser?.isAdmin;
+  useSetupGlobalAdminSocket(shouldInitAdminSock);
 
 
   return null;
   return null;
 };
 };

+ 11 - 7
packages/app/src/stores/websocket.tsx

@@ -33,15 +33,19 @@ export const useGlobalSocket = (): SWRResponse<Socket, Error> => {
 /*
 /*
  * Global Admin Socket
  * Global Admin Socket
  */
  */
-export const useSetupGlobalAdminSocket = (): SWRResponse<Socket, Error> => {
-  const socket = io(GLOBAL_ADMIN_SOCKET_NS, {
-    transports: ['websocket'],
-  });
+export const useSetupGlobalAdminSocket = (shouldInit: boolean): SWRResponse<Socket, Error> => {
+  let socket: Socket | undefined;
 
 
-  socket.on('error', (err) => { logger.error(err) });
-  socket.on('connect_error', (err) => { logger.error('Failed to connect with websocket.', err) });
+  if (shouldInit) {
+    socket = io(GLOBAL_ADMIN_SOCKET_NS, {
+      transports: ['websocket'],
+    });
+
+    socket.on('error', (err) => { logger.error(err) });
+    socket.on('connect_error', (err) => { logger.error('Failed to connect with websocket.', err) });
+  }
 
 
-  return useStaticSWR(GLOBAL_ADMIN_SOCKET_KEY, socket);
+  return useStaticSWR(shouldInit ? GLOBAL_ADMIN_SOCKET_KEY : null, socket);
 };
 };
 
 
 export const useGlobalAdminSocket = (): SWRResponse<Socket, Error> => {
 export const useGlobalAdminSocket = (): SWRResponse<Socket, Error> => {