From 146ad448c2670e48e6c3a771688a211cb2b6f4a1 Mon Sep 17 00:00:00 2001 From: Mart van Santen <mart@greenhost.nl> Date: Mon, 13 Mar 2023 22:35:46 +0800 Subject: [PATCH] Processed comments --- frontend/src/components/Modal/Modal/Modal.tsx | 6 +- frontend/src/components/Modal/Modal/types.ts | 3 +- .../src/components/UserModal/UserModal.tsx | 64 +++++++++++-------- 3 files changed, 42 insertions(+), 31 deletions(-) diff --git a/frontend/src/components/Modal/Modal/Modal.tsx b/frontend/src/components/Modal/Modal/Modal.tsx index ee4fc603..d64acfec 100644 --- a/frontend/src/components/Modal/Modal/Modal.tsx +++ b/frontend/src/components/Modal/Modal/Modal.tsx @@ -13,8 +13,7 @@ export const Modal: React.FC<ModalProps> = ({ useCancelButton = false, cancelButtonTitle = 'Cancel', isLoading = false, - leftActionA = <></>, - leftActionB = <></>, + leftActions = <></>, saveButtonDisabled = false, }) => { const cancelButtonRef = useRef(null); @@ -86,8 +85,7 @@ export const Modal: React.FC<ModalProps> = ({ {onSave && ( <div className="bg-gray-50 px-4 py-3 sm:px-6 sm:flex"> - {leftActionA} - {leftActionB} + {leftActions} <div className="ml-auto sm:flex sm:flex-row-reverse"> <button type="button" diff --git a/frontend/src/components/Modal/Modal/types.ts b/frontend/src/components/Modal/Modal/types.ts index bd790e0c..52cf784b 100644 --- a/frontend/src/components/Modal/Modal/types.ts +++ b/frontend/src/components/Modal/Modal/types.ts @@ -9,7 +9,6 @@ export type ModalProps = { useCancelButton?: boolean; cancelButtonTitle?: string; isLoading?: boolean; - leftActionA?: React.ReactNode; - leftActionB?: React.ReactNode; + leftActions?: React.ReactNode; saveButtonDisabled?: boolean; }; diff --git a/frontend/src/components/UserModal/UserModal.tsx b/frontend/src/components/UserModal/UserModal.tsx index 38830ea4..900ef7ae 100644 --- a/frontend/src/components/UserModal/UserModal.tsx +++ b/frontend/src/components/UserModal/UserModal.tsx @@ -131,6 +131,40 @@ export const UserModal = ({ open, onClose, userId, setUserId }: UserModalProps) deleteModalClose(); }; + // Button with delete option. + const buttonDelete = () => { + return ( + userId && + user.email !== currentUser?.email && ( + <button + onClick={deleteModalOpen} + type="button" + className="mb-4 sm:mb-0 inline-flex items-center px-4 py-2 text-sm font-medium rounded-md text-red-700 bg-red-50 hover:bg-red-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500" + > + <TrashIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" /> + Delete + </button> + ) + ); + }; + + // Button to generate password link + const buttonPasswordLink = () => { + return ( + userId && + isAdmin && ( + <button + onClick={passwordLinkModalOpen} + type="button" + className="mb-4 sm:mb-0 inline-flex items-center px-4 py-2 text-sm + font-medium rounded-md text-blue-700 bg-blue-50 hover:bg-blue-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" + > + Password Link + </button> + ) + ); + }; + return ( <> <Modal @@ -138,31 +172,11 @@ export const UserModal = ({ open, onClose, userId, setUserId }: UserModalProps) open={open} onSave={handleSave} isLoading={userModalLoading} - leftActionA={ - userId && - user.email !== currentUser?.email && ( - <button - onClick={deleteModalOpen} - type="button" - className="mb-4 sm:mb-0 inline-flex items-center px-4 py-2 text-sm font-medium rounded-md text-red-700 bg-red-50 hover:bg-red-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500" - > - <TrashIcon className="-ml-0.5 mr-2 h-4 w-4" aria-hidden="true" /> - Delete - </button> - ) - } - leftActionB={ - userId && - isAdmin && ( - <button - onClick={passwordLinkModalOpen} - type="button" - className="mb-4 sm:mb-0 inline-flex items-center px-4 py-2 text-sm -font-medium rounded-md text-blue-700 bg-blue-50 hover:bg-blue-100 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" - > - Password Link - </button> - ) + leftActions={ + <> + {buttonDelete()} + {buttonPasswordLink()} + </> } useCancelButton > -- GitLab