import { StyledMemberAvatar, StyledMemberButtonContainer, StyledMemberEmail, StyledMemberInfo, StyledMemberListContainer, StyledMemberListItem, StyledMemberName, StyledMemberNameContainer, StyledMemberRoleContainer, StyledMemberTitleContainer, StyledMoreVerticalButton, StyledPublishExplanation, StyledMemberWarp, } from './style'; import { MoreVerticalIcon, EmailIcon, TrashIcon } from '@blocksuite/icons'; import { useState } from 'react'; import { Button, IconButton } from '@/ui/button'; import { InviteMemberModal } from './InviteMemberModal'; import { Menu, MenuItem } from '@/ui/menu'; import { Empty } from '@/ui/empty'; import { WorkspaceUnit } from '@affine/datacenter'; import { useConfirm } from '@/providers/ConfirmProvider'; import { toast } from '@/ui/toast'; import useMembers from '@/hooks/use-members'; import Loading from '@/components/loading'; import { Wrapper } from '@/ui/layout'; import { useTranslation } from '@affine/i18n'; import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; export const MembersPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const [isInviteModalShow, setIsInviteModalShow] = useState(false); const { members, removeMember, loaded } = useMembers(); const { t } = useTranslation(); // FIXME: DELETE THIS const { enableWorkspace } = useWorkspaceHelper(); const { confirm } = useConfirm(); if (workspace.provider === 'affine') { return ( <> {!loaded && ( )} {loaded && members.length === 0 && ( )} {loaded && members.length && ( <> {t('Users')} ({members.length}) {t('Access level')} {members.map((member, index) => { const user = Object.assign( { avatar_url: '', email: '', id: '', name: '', }, member.user ); return ( {user.name} {member.user.email} {member.accepted ? member.type !== 99 ? 'Member' : 'Workspace Owner' : 'Pending'} { const confirmRemove = await confirm({ title: 'Delete Member?', content: `will delete member`, confirmText: 'Delete', confirmType: 'danger', }); if (!confirmRemove) { return; } await removeMember(member.id); toast(`${user.name} has been removed`); }} icon={} > Delete } placement="bottom-end" disablePortal={true} > ); })} )} { setIsInviteModalShow(false); }} onInviteSuccess={() => { setIsInviteModalShow(false); // refreshMembers(); }} workspaceId={workspace.id} open={isInviteModalShow} > ); } return ( <>{t('Collaboration Description')} ); };