Răsfoiți Sursa

Add conditional branching by error code

WNomunomu 2 ani în urmă
părinte
comite
256b716bc2

+ 6 - 0
apps/app/src/components/Admin/UserGroupDetail/UserGroupDetailPage.tsx

@@ -21,9 +21,13 @@ import {
   useSWRxUserGroupPages, useSWRxUserGroupRelationList, useSWRxChildUserGroupList, useSWRxUserGroup,
   useSWRxSelectableParentUserGroups, useSWRxSelectableChildUserGroups, useSWRxAncestorUserGroups, useSWRxUserGroupRelations,
 } from '~/stores/user-group';
+import loggerFactory from '~/utils/logger';
 
 import styles from './UserGroupDetailPage.module.scss';
 
+
+const logger = loggerFactory('growi:stores:personal-settings');
+
 const UserGroupPageList = dynamic(() => import('./UserGroupPageList'), { ssr: false });
 const UserGroupUserTable = dynamic(() => import('./UserGroupUserTable'), { ssr: false });
 
@@ -136,6 +140,8 @@ const UserGroupDetailPage = (props: Props): JSX.Element => {
   );
 
   const onClickSubmitForm = useCallback(async(targetGroup: IUserGroupHasId, userGroupData: Partial<IUserGroupHasId>): Promise<void> => {
+    logger.error(userGroupData?.parent);
+    logger.error(typeof userGroupData?.parent);
     if (typeof userGroupData?.parent === 'string') {
       toastError(t('Something went wrong. Please try again.'));
       return;

+ 5 - 4
apps/app/src/components/Me/BasicInfoSettings.tsx

@@ -1,5 +1,6 @@
 import React from 'react';
 
+import { Logger } from 'browser-bunyan';
 import { useTranslation, i18n } from 'next-i18next';
 
 import { i18n as i18nConfig } from '^/config/next-i18next.config';
@@ -25,14 +26,14 @@ export const BasicInfoSettings = (): JSX.Element => {
       toastSuccess(t('toaster.update_successed', { target: t('Basic Info'), ns: 'commons' }));
     }
     catch (err) {
-      // toastError(err);
-      if (err.message === 'User validation failed: email: Error, expected `email` to be unique. Value: `admin@example.com`') {
+      const code = err.message;
+
+      if (code === 'The email is already in use') {
         toastError(t('alert.email_is_already_in_use', { ns: 'commons' }));
       }
       else {
-        toastError(err);
+        toastError(code);
       }
-
     }
   };
 

+ 7 - 2
apps/app/src/stores/personal-settings.tsx

@@ -68,8 +68,13 @@ export const usePersonalSettings = (config?: SWRConfiguration): SWRResponse<IUse
     }
     catch (err) {
       logger.error(err);
-      // throw new Error('Failed to update personal data');
-      throw new Error(err[0].message);
+      const message = err[0].message;
+
+      if (message.includes('User validation failed: email: Error, expected `email` to be unique.')) {
+        throw new Error('The email is already in use');
+      }
+
+      throw new Error('Failed to update personal data');
     }
   };