kaori пре 3 година
родитељ
комит
35dfdfb2d9

+ 2 - 5
packages/app/src/components/Me/BasicInfoSettings.tsx

@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next';
 import AppContainer from '~/client/services/AppContainer';
 import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { localeMetadatas } from '~/client/util/i18n';
-import { useSWRxPersonalSettings, usePersonalSettings } from '~/stores/personal-settings';
+import { usePersonalSettings } from '~/stores/personal-settings';
 
 import { withUnstatedContainers } from '../UnstatedUtils';
 
@@ -17,7 +17,6 @@ const BasicInfoSettings = (props: Props) => {
   const { t } = useTranslation();
   const { appContainer } = props;
 
-  const { mutate: mutateDatabaseData } = useSWRxPersonalSettings();
   const {
     data: personalSettingsInfo, mutate: mutatePersonalSettings, sync, updateBasicInfo, error,
   } = usePersonalSettings();
@@ -27,8 +26,6 @@ const BasicInfoSettings = (props: Props) => {
 
     try {
       await updateBasicInfo();
-      // revaridate
-      mutateDatabaseData();
       sync();
       toastSuccess(t('toaster.update_successed', { target: t('Basic Info') }));
     }
@@ -44,7 +41,7 @@ const BasicInfoSettings = (props: Props) => {
     if (personalSettingsInfo == null) {
       return;
     }
-    mutatePersonalSettings({ ...personalSettingsInfo, ...updateData });
+    mutatePersonalSettings({ ...personalSettingsInfo, ...updateData }, false);
   };
 
 

+ 4 - 3
packages/app/src/stores/personal-settings.tsx

@@ -21,15 +21,16 @@ export type IPersonalSettingsInfoOption = {
 }
 
 export const usePersonalSettings = (): SWRResponse<IUser, Error> & IPersonalSettingsInfoOption => {
-  const { data: personalSettingsDataFromDB } = useSWRxPersonalSettings();
+  const { data: personalSettingsDataFromDB, mutate: revalidate } = useSWRxPersonalSettings();
   const key = personalSettingsDataFromDB != null ? 'personalSettingsInfo' : null;
 
   const swrResult = useStaticSWR<IUser, Error>(key, undefined, { fallbackData: personalSettingsDataFromDB });
 
   // Sync with database
-  const sync = (): void => {
+  const sync = async(): Promise<void> => {
     const { mutate } = swrResult;
-    mutate();
+    const result = await revalidate();
+    mutate(result);
   };
 
   const updateBasicInfo = async(): Promise<void> => {