feat: delete confirm

This commit is contained in:
DiamondThree
2022-12-22 17:39:33 +08:00
parent 9c62b70246
commit f42826256b
3 changed files with 25 additions and 16 deletions
@@ -11,6 +11,7 @@ interface LoginModalProps {
open: boolean; open: boolean;
onClose: () => void; onClose: () => void;
workspaceId: string; workspaceId: string;
onInviteSuccess: () => void;
} }
export const debounce = <T extends (...args: any) => any>( export const debounce = <T extends (...args: any) => any>(
fn: T, fn: T,
@@ -42,6 +43,7 @@ export const InviteMembers = ({
open, open,
onClose, onClose,
workspaceId, workspaceId,
onInviteSuccess,
}: LoginModalProps) => { }: LoginModalProps) => {
const [canInvite, setCanInvite] = useState<boolean>(true); const [canInvite, setCanInvite] = useState<boolean>(true);
const [email, setEmail] = useState<string>(''); const [email, setEmail] = useState<string>('');
@@ -128,6 +130,7 @@ export const InviteMembers = ({
inviteMember({ id: workspaceId, email: email }) inviteMember({ id: workspaceId, email: email })
.then(() => { .then(() => {
onClose(); onClose();
onInviteSuccess && onInviteSuccess();
}) })
.catch(err => { .catch(err => {
toast('Invite failed'); toast('Invite failed');
@@ -129,7 +129,7 @@ export const WorkspaceSetting = ({
} }
}, [isShow]); }, [isShow]);
return ( return (
<Modal onClose={onClose} open={isShow}> <Modal open={isShow}>
<StyledSettingContainer> <StyledSettingContainer>
<ModalCloseButton onClick={handleClickClose} /> <ModalCloseButton onClick={handleClickClose} />
<StyledSettingSidebar> <StyledSettingSidebar>
@@ -184,7 +184,7 @@ const GeneralPage = ({ workspace }: { workspace?: Workspace }) => {
const MembersPage = ({ workspace }: { workspace: Workspace }) => { const MembersPage = ({ workspace }: { workspace: Workspace }) => {
const [isInviteModalShow, setIsInviteModalShow] = useState(false); const [isInviteModalShow, setIsInviteModalShow] = useState(false);
const [members, setMembers] = useState<Member[]>([]); const [members, setMembers] = useState<Member[]>([]);
useEffect(() => { const refreshMembers = () => {
getWorkspaceMembers({ getWorkspaceMembers({
id: workspace.id, id: workspace.id,
}) })
@@ -194,8 +194,10 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
.catch(err => { .catch(err => {
console.log(err); console.log(err);
}); });
};
useEffect(() => {
refreshMembers();
}, [workspace.id]); }, [workspace.id]);
const { confirm } = useConfirm();
return ( return (
<div> <div>
@@ -239,19 +241,20 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
<> <>
<MenuItem <MenuItem
onClick={() => { onClick={() => {
confirm({ // confirm({
title: 'Delete Member?', // title: 'Delete Member?',
content: `will delete member`, // content: `will delete member`,
confirmText: 'Delete', // confirmText: 'Delete',
confirmType: 'danger', // confirmType: 'danger',
}).then(confirm => { // }).then(confirm => {
removeMember({ removeMember({
permissionId: member.id, permissionId: member.id,
}).then(data => { }).then(data => {
// console.log('data: ', data); // console.log('data: ', data);
toast('Moved to Trash'); toast('Moved to Trash');
}); refreshMembers();
}); });
// });
}} }}
icon={<TrashIcon />} icon={<TrashIcon />}
> >
@@ -288,6 +291,9 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
onClose={() => { onClose={() => {
setIsInviteModalShow(false); setIsInviteModalShow(false);
}} }}
onInviteSuccess={() => {
refreshMembers();
}}
workspaceId={workspace.id} workspaceId={workspace.id}
open={isInviteModalShow} open={isInviteModalShow}
></InviteMembers> ></InviteMembers>
+1 -1
View File
@@ -27,7 +27,7 @@ export const Confirm = ({
}: ConfirmProps) => { }: ConfirmProps) => {
const [open, setOpen] = useState(true); const [open, setOpen] = useState(true);
return ( return (
<Modal open={open} disablePortal={true}> <Modal open={open}>
<StyledModalWrapper> <StyledModalWrapper>
<ModalCloseButton <ModalCloseButton
onClick={() => { onClick={() => {