fix:member init
This commit is contained in:
@@ -46,6 +46,7 @@ import { GeneralPage } from './general';
|
|||||||
import {
|
import {
|
||||||
getActiveWorkspace,
|
getActiveWorkspace,
|
||||||
getUserInfo,
|
getUserInfo,
|
||||||
|
Login,
|
||||||
setWorkspacePublish,
|
setWorkspacePublish,
|
||||||
User,
|
User,
|
||||||
Workspace,
|
Workspace,
|
||||||
@@ -179,119 +180,151 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
|
|||||||
// }, [workspace.id]);
|
// }, [workspace.id]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const user = getUserInfo();
|
setUser();
|
||||||
user && setUserInfo(user);
|
|
||||||
// refreshMembers();
|
// refreshMembers();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const setUser = () => {
|
||||||
|
const user = getUserInfo();
|
||||||
|
user && setUserInfo(user);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<StyledMemberTitleContainer>
|
{userInfo ? (
|
||||||
<StyledMemberNameContainer>
|
<>
|
||||||
Users({members.length})
|
<StyledMemberTitleContainer>
|
||||||
</StyledMemberNameContainer>
|
<StyledMemberNameContainer>
|
||||||
<StyledMemberRoleContainer>Access level</StyledMemberRoleContainer>
|
Users({members.length})
|
||||||
</StyledMemberTitleContainer>
|
</StyledMemberNameContainer>
|
||||||
<StyledMemberListContainer>
|
<StyledMemberRoleContainer>Access level</StyledMemberRoleContainer>
|
||||||
{members.length === 0 && (
|
</StyledMemberTitleContainer>
|
||||||
<Empty width={648} sx={{ marginTop: '60px' }} height={300}></Empty>
|
<StyledMemberListContainer>
|
||||||
)}
|
{members.length === 0 && (
|
||||||
{members.length ? (
|
<Empty
|
||||||
members.map(member => {
|
width={648}
|
||||||
return (
|
sx={{ marginTop: '60px' }}
|
||||||
<StyledMemberListItem key={member.id}>
|
height={300}
|
||||||
<StyledMemberNameContainer>
|
></Empty>
|
||||||
{member.user.type === 'Registered' ? (
|
)}
|
||||||
<Avatar src={member.user.avatar_url}></Avatar>
|
{members.length ? (
|
||||||
) : (
|
members.map(member => {
|
||||||
<StyledMemberAvatar alt="member avatar">
|
return (
|
||||||
<EmailIcon></EmailIcon>
|
<StyledMemberListItem key={member.id}>
|
||||||
</StyledMemberAvatar>
|
<StyledMemberNameContainer>
|
||||||
)}
|
{member.user.type === 'Registered' ? (
|
||||||
|
<Avatar src={member.user.avatar_url}></Avatar>
|
||||||
|
) : (
|
||||||
|
<StyledMemberAvatar alt="member avatar">
|
||||||
|
<EmailIcon></EmailIcon>
|
||||||
|
</StyledMemberAvatar>
|
||||||
|
)}
|
||||||
|
|
||||||
<StyledMemberInfo>
|
<StyledMemberInfo>
|
||||||
{member.user.type === 'Registered' ? (
|
{member.user.type === 'Registered' ? (
|
||||||
<StyledMemberName>{member.user.name}</StyledMemberName>
|
<StyledMemberName>
|
||||||
) : (
|
{member.user.name}
|
||||||
<></>
|
</StyledMemberName>
|
||||||
)}
|
) : (
|
||||||
<StyledMemberEmail>{member.user.email}</StyledMemberEmail>
|
<></>
|
||||||
</StyledMemberInfo>
|
)}
|
||||||
</StyledMemberNameContainer>
|
<StyledMemberEmail>
|
||||||
<StyledMemberRoleContainer>
|
{member.user.email}
|
||||||
{member.accepted
|
</StyledMemberEmail>
|
||||||
? member.type !== 99
|
</StyledMemberInfo>
|
||||||
? 'Member'
|
</StyledMemberNameContainer>
|
||||||
: 'Workspace Owner'
|
<StyledMemberRoleContainer>
|
||||||
: 'Pending'}
|
{member.accepted
|
||||||
</StyledMemberRoleContainer>
|
? member.type !== 99
|
||||||
<StyledMoreVerticalButton>
|
? 'Member'
|
||||||
<Menu
|
: 'Workspace Owner'
|
||||||
content={
|
: 'Pending'}
|
||||||
<>
|
</StyledMemberRoleContainer>
|
||||||
<MenuItem
|
<StyledMoreVerticalButton>
|
||||||
onClick={() => {
|
<Menu
|
||||||
// confirm({
|
content={
|
||||||
// title: 'Delete Member?',
|
<>
|
||||||
// content: `will delete member`,
|
<MenuItem
|
||||||
// confirmText: 'Delete',
|
onClick={() => {
|
||||||
// confirmType: 'danger',
|
// confirm({
|
||||||
// }).then(confirm => {
|
// title: 'Delete Member?',
|
||||||
getDataCenter()
|
// content: `will delete member`,
|
||||||
.then(dc =>
|
// confirmText: 'Delete',
|
||||||
dc.apis.removeMember({
|
// confirmType: 'danger',
|
||||||
permissionId: member.id,
|
// }).then(confirm => {
|
||||||
})
|
getDataCenter()
|
||||||
)
|
.then(dc =>
|
||||||
.then(() => {
|
dc.apis.removeMember({
|
||||||
// console.log('data: ', data);
|
permissionId: member.id,
|
||||||
toast('Moved to Trash');
|
})
|
||||||
// refreshMembers();
|
)
|
||||||
});
|
.then(() => {
|
||||||
// });
|
// console.log('data: ', data);
|
||||||
}}
|
toast('Moved to Trash');
|
||||||
icon={<TrashIcon />}
|
// refreshMembers();
|
||||||
>
|
});
|
||||||
Delete
|
// });
|
||||||
</MenuItem>
|
}}
|
||||||
</>
|
icon={<TrashIcon />}
|
||||||
}
|
>
|
||||||
placement="bottom-end"
|
Delete
|
||||||
disablePortal={true}
|
</MenuItem>
|
||||||
>
|
</>
|
||||||
<IconButton>
|
}
|
||||||
<MoreVerticalIcon />
|
placement="bottom-end"
|
||||||
</IconButton>
|
disablePortal={true}
|
||||||
</Menu>
|
>
|
||||||
</StyledMoreVerticalButton>
|
<IconButton>
|
||||||
</StyledMemberListItem>
|
<MoreVerticalIcon />
|
||||||
);
|
</IconButton>
|
||||||
})
|
</Menu>
|
||||||
) : (
|
</StyledMoreVerticalButton>
|
||||||
<></>
|
</StyledMemberListItem>
|
||||||
)}
|
);
|
||||||
</StyledMemberListContainer>
|
})
|
||||||
<StyledMemberButtonContainer>
|
) : (
|
||||||
<Button
|
<></>
|
||||||
onClick={() => {
|
)}
|
||||||
setIsInviteModalShow(true);
|
</StyledMemberListContainer>
|
||||||
}}
|
<StyledMemberButtonContainer>
|
||||||
type="primary"
|
<Button
|
||||||
shape="circle"
|
onClick={() => {
|
||||||
>
|
setIsInviteModalShow(true);
|
||||||
Invite Members
|
}}
|
||||||
</Button>
|
type="primary"
|
||||||
<InviteMembers
|
shape="circle"
|
||||||
onClose={() => {
|
>
|
||||||
setIsInviteModalShow(false);
|
Invite Members
|
||||||
}}
|
</Button>
|
||||||
onInviteSuccess={() => {
|
<InviteMembers
|
||||||
// refreshMembers();
|
onClose={() => {
|
||||||
}}
|
setIsInviteModalShow(false);
|
||||||
workspaceId={workspace.id}
|
}}
|
||||||
open={isInviteModalShow}
|
onInviteSuccess={() => {
|
||||||
></InviteMembers>
|
// refreshMembers();
|
||||||
</StyledMemberButtonContainer>
|
}}
|
||||||
|
workspaceId={workspace.id}
|
||||||
|
open={isInviteModalShow}
|
||||||
|
></InviteMembers>
|
||||||
|
</StyledMemberButtonContainer>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<div>
|
||||||
|
Collaborating with other members requires AFFiNE Cloud service.
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<Button
|
||||||
|
onClick={() => {
|
||||||
|
Login();
|
||||||
|
setUser();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Enable AFFiNE Cloud
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user