Browse Source

fix UI can't stop loading after networking is back (#529)

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 1 year ago
parent
commit
f808dd250f
1 changed files with 11 additions and 9 deletions
  1. 11 9
      client/src/context/Data.tsx

+ 11 - 9
client/src/context/Data.tsx

@@ -137,17 +137,19 @@ export const DataProvider = (props: { children: React.ReactNode }) => {
 
   // API: fetch databases
   const fetchDatabases = async (updateLoading?: boolean) => {
-    updateLoading && setLoadingDatabases(true);
-    const newDatabases = await DatabaseService.listDatabases();
-    updateLoading && setLoadingDatabases(false);
+    try {
+      updateLoading && setLoadingDatabases(true);
+      const newDatabases = await DatabaseService.listDatabases();
+      // if no database, logout
+      if (newDatabases.length === 0) {
+        logout();
+      }
+      setDatabases(newDatabases);
 
-    // if no database, logout
-    if (newDatabases.length === 0) {
-      logout();
+      return newDatabases;
+    } finally {
+      updateLoading && setLoadingDatabases(false);
     }
-    setDatabases(newDatabases);
-
-    return newDatabases;
   };
 
   // API: create database