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

Merge pull request #9814 from weseek/support/upgrade-swr

support: Upgrade SWR
mergify[bot] 1 год назад
Родитель
Сommit
a02eca45bc

+ 1 - 1
apps/app/package.json

@@ -227,7 +227,7 @@
     "string-width": "=4.2.2",
     "superjson": "^1.9.1",
     "swagger-jsdoc": "^6.2.8",
-    "swr": "^2.2.2",
+    "swr": "^2.3.2",
     "throttle-debounce": "^5.0.0",
     "ts-deepmerge": "^6.2.0",
     "tslib": "^2.8.0",

+ 13 - 12
apps/app/src/stores/websocket.tsx

@@ -1,14 +1,14 @@
 import { useEffect } from 'react';
 
-import { useGlobalSocket, GLOBAL_SOCKET_KEY, GLOBAL_SOCKET_NS } from '@growi/core/dist/swr';
+import {
+  useGlobalSocket, GLOBAL_SOCKET_KEY, GLOBAL_SOCKET_NS, useSWRStatic,
+} from '@growi/core/dist/swr';
 import type { Socket } from 'socket.io-client';
 import type { SWRResponse } from 'swr';
 
 import { SocketEventName } from '~/interfaces/websocket';
 import loggerFactory from '~/utils/logger';
 
-import { useStaticSWR } from './use-static-swr';
-
 const logger = loggerFactory('growi:stores:ui');
 
 export const GLOBAL_ADMIN_SOCKET_NS = '/admin';
@@ -19,10 +19,14 @@ export const GLOBAL_ADMIN_SOCKET_KEY = 'globalAdminSocket';
  */
 export const useSetupGlobalSocket = (): void => {
 
-  const { mutate } = useStaticSWR(GLOBAL_SOCKET_KEY);
+  const { data, mutate } = useSWRStatic(GLOBAL_SOCKET_KEY);
 
   useEffect(() => {
-    const setUpSocket = async() => {
+    if (data != null) {
+      return;
+    }
+
+    mutate(async() => {
       const { io } = await import('socket.io-client');
       const socket = io(GLOBAL_SOCKET_NS, {
         transports: ['websocket'],
@@ -31,12 +35,9 @@ export const useSetupGlobalSocket = (): void => {
       socket.on('error', (err) => { logger.error(err) });
       socket.on('connect_error', (err) => { logger.error('Failed to connect with websocket.', err) });
 
-      mutate(socket);
-    };
-
-    setUpSocket();
-
-  }, [mutate]);
+      return socket;
+    });
+  }, [data, mutate]);
 };
 
 // comment out for porduction build error: https://github.com/weseek/growi/pull/7131
@@ -59,7 +60,7 @@ export const useSetupGlobalSocket = (): void => {
 // };
 
 export const useGlobalAdminSocket = (): SWRResponse<Socket, Error> => {
-  return useStaticSWR(GLOBAL_ADMIN_SOCKET_KEY);
+  return useSWRStatic(GLOBAL_ADMIN_SOCKET_KEY);
 };
 
 export const useSetupGlobalSocketForPage = (pageId: string | undefined): void => {

+ 1 - 1
packages/editor/package.json

@@ -67,7 +67,7 @@
     "reactstrap": "^9.2.2",
     "string-width": "=4.2.2",
     "simplebar-react": "^2.3.6",
-    "swr": "^2.2.2",
+    "swr": "^2.3.2",
     "ts-deepmerge": "^6.2.0",
     "y-codemirror.next": "^0.3.5",
     "y-socket.io": "^1.1.3",

+ 1 - 1
packages/remark-attachment-refs/package.json

@@ -52,7 +52,7 @@
     "hast-util-select": "^6.0.2",
     "express": "^4.20.0",
     "mongoose": "^6.13.6",
-    "swr": "^2.2.2",
+    "swr": "^2.3.2",
     "universal-bunyan": "^0.9.2",
     "xss": "^1.0.15"
   },

+ 1 - 1
packages/remark-lsx/package.json

@@ -41,7 +41,7 @@
     "express-validator": "^6.14.0",
     "http-errors": "^2.0.0",
     "mongoose": "^6.13.6",
-    "swr": "^2.2.2",
+    "swr": "^2.3.2",
     "xss": "^1.0.15"
   },
   "devDependencies": {

+ 19 - 19
pnpm-lock.yaml

@@ -695,8 +695,8 @@ importers:
         specifier: ^6.2.8
         version: 6.2.8(openapi-types@12.1.3)
       swr:
-        specifier: ^2.2.2
-        version: 2.2.5(react@18.2.0)
+        specifier: ^2.3.2
+        version: 2.3.3(react@18.2.0)
       throttle-debounce:
         specifier: ^5.0.0
         version: 5.0.2
@@ -1198,7 +1198,7 @@ importers:
         version: 4.8.1
       swr:
         specifier: ^2.2.2
-        version: 2.2.5(react@18.2.0)
+        version: 2.3.3(react@18.2.0)
 
   packages/core-styles:
     dependencies:
@@ -1346,8 +1346,8 @@ importers:
         specifier: '=4.2.2'
         version: 4.2.2
       swr:
-        specifier: ^2.2.2
-        version: 2.2.5(react@18.2.0)
+        specifier: ^2.3.2
+        version: 2.3.3(react@18.2.0)
       ts-deepmerge:
         specifier: ^6.2.0
         version: 6.2.0
@@ -1518,8 +1518,8 @@ importers:
         specifier: ^18.2.0
         version: 18.2.0(react@18.2.0)
       swr:
-        specifier: ^2.2.2
-        version: 2.2.5(react@18.2.0)
+        specifier: ^2.3.2
+        version: 2.3.3(react@18.2.0)
       universal-bunyan:
         specifier: ^0.9.2
         version: 0.9.2(@browser-bunyan/console-formatted-stream@1.8.0)(browser-bunyan@1.8.0)(bunyan@1.8.15)
@@ -1695,8 +1695,8 @@ importers:
         specifier: ^18.2.0
         version: 18.2.0(react@18.2.0)
       swr:
-        specifier: ^2.2.2
-        version: 2.2.5(react@18.2.0)
+        specifier: ^2.3.2
+        version: 2.3.3(react@18.2.0)
       xss:
         specifier: ^1.0.15
         version: 1.0.15
@@ -13299,10 +13299,10 @@ packages:
     resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==}
     hasBin: true
 
-  swr@2.2.5:
-    resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==}
+  swr@2.3.3:
+    resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==}
     peerDependencies:
-      react: ^16.11.0 || ^17.0.0 || ^18.0.0
+      react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
 
   synckit@0.7.2:
     resolution: {integrity: sha512-CSZRtSRZ8RhJGMtWyLRqlarmWPPlsgZJHtV6cz0VTHNOg+R7UBoE2eNPQmB5Qrhtk3RX2AAcJmVwMXFULVQSwg==}
@@ -13979,10 +13979,10 @@ packages:
   urlpattern-polyfill@10.0.0:
     resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
 
-  use-sync-external-store@1.2.2:
-    resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
+  use-sync-external-store@1.4.0:
+    resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==}
     peerDependencies:
-      react: ^16.8.0 || ^17.0.0 || ^18.0.0
+      react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
 
   usehooks-ts@2.16.0:
     resolution: {integrity: sha512-bez95WqYujxp6hFdM/CpRDiVPirZPxlMzOH2QB8yopoKQMXpscyZoxOjpEdaxvV+CAWUDSM62cWnqHE0E/MZ7w==}
@@ -29675,11 +29675,11 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  swr@2.2.5(react@18.2.0):
+  swr@2.3.3(react@18.2.0):
     dependencies:
-      client-only: 0.0.1
+      dequal: 2.0.3
       react: 18.2.0
-      use-sync-external-store: 1.2.2(react@18.2.0)
+      use-sync-external-store: 1.4.0(react@18.2.0)
 
   synckit@0.7.2:
     dependencies:
@@ -30384,7 +30384,7 @@ snapshots:
 
   urlpattern-polyfill@10.0.0: {}
 
-  use-sync-external-store@1.2.2(react@18.2.0):
+  use-sync-external-store@1.4.0(react@18.2.0):
     dependencies:
       react: 18.2.0