Shun Miyazawa 4 лет назад
Родитель
Сommit
ad9be56313
1 измененных файлов с 24 добавлено и 6 удалено
  1. 24 6
      packages/app/src/components/Admin/UserGroup/UserGroupModal.tsx

+ 24 - 6
packages/app/src/components/Admin/UserGroup/UserGroupModal.tsx

@@ -1,16 +1,19 @@
-import React, { FC, useState, useCallback } from 'react';
+import React, {
+  FC, useState, useEffect, useCallback,
+} from 'react';
 import {
   Modal, ModalHeader, ModalBody, ModalFooter,
 } from 'reactstrap';
 import { useTranslation } from 'react-i18next';
 
+import { Ref } from '~/interfaces/common';
 import { IUserGroup, IUserGroupHasId } from '~/interfaces/user';
 import { CustomWindow } from '~/interfaces/global';
 import Xss from '~/services/xss';
 
 type Props = {
   userGroup?: IUserGroupHasId,
-  onClickButton?: (userGroupData: Partial<IUserGroup>) => Promise<IUserGroupHasId | void>
+  onClickButton?: (userGroupData: Partial<IUserGroupHasId>) => Promise<IUserGroupHasId | void>
   isShow?: boolean
   onHide?: () => Promise<void> | void
 };
@@ -27,8 +30,9 @@ const UserGroupModal: FC<Props> = (props: Props) => {
   /*
    * State
    */
-  const [currentName, setName] = useState(userGroup != null ? userGroup.name : '');
-  const [currentDescription, setDescription] = useState(userGroup != null ? userGroup.description : '');
+  const [currentName, setName] = useState('');
+  const [currentDescription, setDescription] = useState('');
+  const [currentParent, setParent] = useState<Ref<IUserGroup> | null>(null);
 
   /*
    * Function
@@ -48,8 +52,22 @@ const UserGroupModal: FC<Props> = (props: Props) => {
       return;
     }
 
-    await onClickButton({ name: currentName, description: currentDescription });
-  }, [currentName, currentDescription, onClickButton]);
+    await onClickButton({
+      _id: userGroup?._id,
+      name: currentName,
+      description: currentDescription,
+      parent: currentParent,
+    });
+  }, [userGroup, currentName, currentDescription, currentParent, onClickButton]);
+
+  // componentDidMount
+  useEffect(() => {
+    if (userGroup != null) {
+      setName(userGroup.name);
+      setDescription(userGroup.description);
+      setParent(userGroup.parent);
+    }
+  }, [userGroup]);
 
   return (
     <Modal className="modal-md" isOpen={isShow} toggle={onHide}>