From 747a71037caae3fd7da517cfaa529e3006594879 Mon Sep 17 00:00:00 2001 From: DiamondThree Date: Thu, 22 Dec 2022 16:58:56 +0800 Subject: [PATCH] feat: delete member --- .../workspace-setting/workspace-setting.tsx | 109 ++++++++++++------ packages/app/src/ui/confirm/confirm.tsx | 2 +- 2 files changed, 75 insertions(+), 36 deletions(-) diff --git a/packages/app/src/components/workspace-setting/workspace-setting.tsx b/packages/app/src/components/workspace-setting/workspace-setting.tsx index 2229c2630e..1efadaf131 100644 --- a/packages/app/src/components/workspace-setting/workspace-setting.tsx +++ b/packages/app/src/components/workspace-setting/workspace-setting.tsx @@ -35,9 +35,10 @@ import { PublishIcon, MoreVerticalIcon, EmailIcon, + TrashIcon, } from '@blocksuite/icons'; import { useEffect, useState } from 'react'; -import { Button } from '@/ui/button'; +import { Button, IconButton } from '@/ui/button'; import Input from '@/ui/input'; import { InviteMembers } from '../invite-members/index'; import { @@ -45,10 +46,12 @@ import { Workspace, WorkspaceType, Member, - type RegisteredUser, + removeMember, } from '@pathfinder/data-services'; import { Avatar } from '@mui/material'; - +import { Menu, MenuItem } from '@/ui/menu'; +import { toast } from '@/ui/toast'; +import { useConfirm } from '@/providers/confirm-provider'; enum ActiveTab { 'general' = 'general', 'members' = 'members', @@ -126,7 +129,7 @@ export const WorkspaceSetting = ({ } }, [isShow]); return ( - + @@ -192,6 +195,7 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => { console.log(err); }); }, []); + const { confirm } = useConfirm(); return (
@@ -199,40 +203,75 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => { Access level - {members.map(member => { - return ( - - - {member.user.type === 'Registered' ? ( - - ) : ( - - - - )} - - + {members.length ? ( + members.map(member => { + return ( + + {member.user.type === 'Registered' ? ( - {member.user.name} + ) : ( - <> + + + )} - {member.user.email} - - - - {member.accepted - ? member.type !== 99 - ? 'Member' - : 'Workspace Owner' - : 'Pending'} - - - - - - ); - })} + + + {member.user.type === 'Registered' ? ( + {member.user.name} + ) : ( + <> + )} + {member.user.email} + + + + {member.accepted + ? member.type !== 99 + ? 'Member' + : 'Workspace Owner' + : 'Pending'} + + + + { + confirm({ + title: 'Delete Member?', + content: `will delete member`, + confirmText: 'Delete', + confirmType: 'danger', + }).then(confirm => { + removeMember({ + permissionId: member.id, + }).then(data => { + // console.log('data: ', data); + toast('Moved to Trash'); + }); + }); + }} + icon={} + > + Delete + + + } + placement="bottom-end" + disablePortal={true} + > + + + + + + + ); + }) + ) : ( + <> + )}