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

Merge pull request #6207 from weseek/fix/96693-cypress-err

fix/96693 Show toast error
Yuki Takei 3 лет назад
Родитель
Сommit
17d0b5082f

+ 10 - 5
packages/app/src/components/Me/AssociateModal.tsx

@@ -8,7 +8,7 @@ import {
   ModalFooter,
   ModalFooter,
 } from 'reactstrap';
 } from 'reactstrap';
 
 
-import { toastSuccess } from '~/client/util/apiNotification';
+import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { usePersonalSettings, useSWRxPersonalExternalAccounts } from '~/stores/personal-settings';
 import { usePersonalSettings, useSWRxPersonalExternalAccounts } from '~/stores/personal-settings';
 
 
 import LdapAuthTest from '../Admin/Security/LdapAuthTest';
 import LdapAuthTest from '../Admin/Security/LdapAuthTest';
@@ -35,11 +35,16 @@ const AssociateModal = (props: Props): JSX.Element => {
 
 
 
 
   const clickAddLdapAccountHandler = useCallback(async() => {
   const clickAddLdapAccountHandler = useCallback(async() => {
-    await associateLdapAccount({ username, password });
-    mutatePersonalExternalAccounts();
+    try {
+      await associateLdapAccount({ username, password });
+      mutatePersonalExternalAccounts();
 
 
-    closeModalHandler();
-    toastSuccess(t('security_setting.updated_general_security_setting'));
+      closeModalHandler();
+      toastSuccess(t('security_setting.updated_general_security_setting'));
+    }
+    catch (err) {
+      toastError(err);
+    }
 
 
   }, [associateLdapAccount, closeModalHandler, mutatePersonalExternalAccounts, password, t, username]);
   }, [associateLdapAccount, closeModalHandler, mutatePersonalExternalAccounts, password, t, username]);
 
 

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

@@ -1,12 +1,16 @@
 import useSWR, { SWRResponse } from 'swr';
 import useSWR, { SWRResponse } from 'swr';
 
 
+
 import { IExternalAccount } from '~/interfaces/external-account';
 import { IExternalAccount } from '~/interfaces/external-account';
 import { IUser } from '~/interfaces/user';
 import { IUser } from '~/interfaces/user';
+import loggerFactory from '~/utils/logger';
 
 
 import { apiv3Get, apiv3Put } from '../client/util/apiv3-client';
 import { apiv3Get, apiv3Put } from '../client/util/apiv3-client';
 
 
 import { useStaticSWR } from './use-static-swr';
 import { useStaticSWR } from './use-static-swr';
 
 
+const logger = loggerFactory('growi:stores:personal-settings');
+
 
 
 export const useSWRxPersonalSettings = (): SWRResponse<IUser, Error> => {
 export const useSWRxPersonalSettings = (): SWRResponse<IUser, Error> => {
   return useSWR(
   return useSWR(
@@ -51,16 +55,34 @@ export const usePersonalSettings = (): SWRResponse<IUser, Error> & IPersonalSett
     };
     };
 
 
     // invoke API
     // invoke API
-    await apiv3Put('/personal-setting/', updateData);
+    try {
+      await apiv3Put('/personal-setting/', updateData);
+    }
+    catch (err) {
+      logger.error(err);
+      throw new Error('Failed to update personal data');
+    }
   };
   };
 
 
 
 
   const associateLdapAccount = async(account): Promise<void> => {
   const associateLdapAccount = async(account): Promise<void> => {
-    await apiv3Put('/personal-setting/associate-ldap', account);
+    try {
+      await apiv3Put('/personal-setting/associate-ldap', account);
+    }
+    catch (err) {
+      logger.error(err);
+      throw new Error('Failed to associate ldap account');
+    }
   };
   };
 
 
   const disassociateLdapAccount = async(account): Promise<void> => {
   const disassociateLdapAccount = async(account): Promise<void> => {
-    await apiv3Put('/personal-setting/disassociate-ldap', account);
+    try {
+      await apiv3Put('/personal-setting/disassociate-ldap', account);
+    }
+    catch (err) {
+      logger.error(err);
+      throw new Error('Failed to disassociate ldap account');
+    }
   };
   };
 
 
   return {
   return {