소스 검색

update for FB

jam411 3 년 전
부모
커밋
8452c838e7
2개의 변경된 파일21개의 추가작업 그리고 12개의 파일을 삭제
  1. 11 11
      packages/app/src/components/Admin/Users/UserMenu.tsx
  2. 10 1
      packages/core/src/interfaces/user.ts

+ 11 - 11
packages/app/src/components/Admin/Users/UserMenu.tsx

@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, useCallback } from 'react';
 
 import type { IUserHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
@@ -31,15 +31,15 @@ const UserMenu = (props: UserMenuProps) => {
 
   const [isInvitationEmailSended, setIsInvitationEmailSended] = useState<boolean>(user.isInvitationEmailSended);
 
-  const onClickPasswordResetHandler = async() => {
+  const onClickPasswordResetHandler = useCallback(async() => {
     await adminUsersContainer.showPasswordResetModal(user);
-  };
+  }, [adminUsersContainer, user]);
 
-  const onSuccessfullySentInvitationEmailHandler = () => {
+  const onSuccessfullySentInvitationEmailHandler = useCallback(() => {
     setIsInvitationEmailSended(true);
-  };
+  }, []);
 
-  const renderEditMenu = () => {
+  const renderEditMenu = useCallback(() => {
     return (
       <>
         <li className="dropdown-divider"></li>
@@ -51,9 +51,9 @@ const UserMenu = (props: UserMenuProps) => {
         </li>
       </>
     );
-  };
+  }, [onClickPasswordResetHandler, t]);
 
-  const renderStatusMenu = () => {
+  const renderStatusMenu = useCallback(() => {
     return (
       <>
         <li className="dropdown-divider"></li>
@@ -72,9 +72,9 @@ const UserMenu = (props: UserMenuProps) => {
         </li>
       </>
     );
-  };
+  }, [isInvitationEmailSended, onSuccessfullySentInvitationEmailHandler, t, user]);
 
-  const renderAdminMenu = () => {
+  const renderAdminMenu = useCallback(() => {
     return (
       <>
         <li className="dropdown-divider pl-0"></li>
@@ -85,7 +85,7 @@ const UserMenu = (props: UserMenuProps) => {
         </li>
       </>
     );
-  };
+  }, [t, user]);
 
   return (
     <UncontrolledDropdown id="userMenu" size="sm">

+ 10 - 1
packages/core/src/interfaces/user.ts

@@ -21,7 +21,7 @@ export type IUser = {
   createdAt: Date,
   lastLoginAt?: Date,
   introduction: string,
-  status: number,
+  status: IUserStatus,
 }
 
 export type IUserGroupRelation = {
@@ -37,6 +37,15 @@ export type IUserGroup = {
   parent: Ref<IUserGroupHasId> | null;
 }
 
+export const UserStatus = {
+  registered: 1,
+  active: 2,
+  suspended: 3,
+  deleted: 4,
+  invited: 5,
+} as const;
+export type IUserStatus = typeof UserStatus[keyof typeof UserStatus]
+
 export type IUserHasId = IUser & HasObjectId;
 export type IUserGroupHasId = IUserGroup & HasObjectId;
 export type IUserGroupRelationHasId = IUserGroupRelation & HasObjectId;