diff --git a/packages/app/src/components/workspace-setting/MembersPage.tsx b/packages/app/src/components/workspace-setting/MembersPage.tsx
deleted file mode 100644
index e2a9beeae0..0000000000
--- a/packages/app/src/components/workspace-setting/MembersPage.tsx
+++ /dev/null
@@ -1,214 +0,0 @@
-import {
- StyledMemberAvatar,
- StyledMemberButtonContainer,
- StyledMemberEmail,
- StyledMemberInfo,
- StyledMemberListContainer,
- StyledMemberListItem,
- StyledMemberName,
- StyledMemberNameContainer,
- StyledMemberRoleContainer,
- StyledMemberTitleContainer,
- StyledMoreVerticalButton,
- StyledPublishExplanation,
-} from './style';
-import { MoreVerticalIcon, EmailIcon, TrashIcon } from '@blocksuite/icons';
-import { useEffect, useState } from 'react';
-import { Button, IconButton } from '@/ui/button';
-import { InviteMembers } from '../invite-members/index';
-import { Menu, MenuItem } from '@/ui/menu';
-import { Empty } from '@/ui/empty';
-// import {
-// deleteMember,
-// getMembers,
-// User,
-// Workspace,
-// } from '@/hooks/mock-data/mock';
-import { WorkspaceUnit } from '@affine/datacenter';
-import { useTemporaryHelper } from '@/providers/temporary-helper-provider';
-import { StyledMemberWarp } from './general/style';
-import { useConfirm } from '@/providers/ConfirmProvider';
-// import { useAppState } from '@/providers/app-state-provider';
-
-// import { useAppState } from '@/providers/app-state-provider';
-export const MembersPage = ({ workspace }: { workspace: WorkspaceUnit }) => {
- const [isInviteModalShow, setIsInviteModalShow] = useState(false);
-
- const [members, setMembers] = useState<[{ name: string; email: string }?]>(
- []
- );
-
- // const getMembers = async () =>{
- // const members = await dataCenter.
- // }
-
- console.log('setMembers: ', setMembers);
- const { user, login, updateWorkspaceMeta } = useTemporaryHelper();
- const { confirm } = useConfirm();
- // const refreshMembers = useCallback(() => {
- // getDataCenter()
- // .then(dc =>
- // dc.apis.getWorkspaceMembers({
- // id: workspace.id,
- // })
- // )
- // .then(data => {
- // setMembers(data);
- // })
- // .catch(err => {
- // console.log(err);
- // });
- // }, [workspace.id]);
- const setMembersList = () => {
- // setMembers([]);
- // const members = getMembers(workspace.id);
- // members && setMembers(members);
- };
- useEffect(() => {
- setMembersList();
- // refreshMembers();
- });
-
- return (
-
- {workspace.provider === 'affine' ? (
- <>
-
-
- Users({members.length})
-
- Access level
-
-
- {members.length ? (
- members.map((member, index) => {
- return (
-
-
-
-
-
-
-
- {member?.name}
-
- {member?.email}
-
-
-
- {/* {member.accepted
- ? member.type !== 99
- ? 'Member'
- : 'Workspace Owner'
- : 'Pending'} */}
- Pending
-
-
-
-
-
- );
- })
- ) : (
-
- )}
-
-
-
- {
- setIsInviteModalShow(false);
- }}
- onInviteSuccess={() => {
- setMembersList();
- setIsInviteModalShow(false);
- // refreshMembers();
- }}
- workspaceId={workspace.id}
- open={isInviteModalShow}
- >
-
- >
- ) : (
-
- <>Collaborating with other members requires AFFiNE Cloud service.>
-
-
-
-
- )}
-
- );
-};
diff --git a/packages/app/src/components/workspace-setting/general/style.ts b/packages/app/src/components/workspace-setting/general/style.ts
index 4a82017e96..739ec24aec 100644
--- a/packages/app/src/components/workspace-setting/general/style.ts
+++ b/packages/app/src/components/workspace-setting/general/style.ts
@@ -26,11 +26,3 @@ export const StyledSettingAvatarContent = styled('div')(() => {
export const StyledSettingAvatar = styled(MuiAvatar)(() => {
return { height: '72px', width: '72px', marginRight: '24px' };
});
-
-export const StyledMemberWarp = styled('div')(() => {
- return {
- display: 'flex',
- flexDirection: 'column',
- padding: '40px 0',
- };
-});
diff --git a/packages/app/src/components/workspace-setting/index.ts b/packages/app/src/components/workspace-setting/index.ts
index c0eea1cfb0..0468074d2f 100644
--- a/packages/app/src/components/workspace-setting/index.ts
+++ b/packages/app/src/components/workspace-setting/index.ts
@@ -1,5 +1,5 @@
export * from './general';
export * from './ExportPage';
-export * from './MembersPage';
+export * from './member';
export * from './SyncPage';
export * from './PublishPage';
diff --git a/packages/app/src/components/invite-members/index.tsx b/packages/app/src/components/workspace-setting/member/InviteMemberModal.tsx
similarity index 77%
rename from packages/app/src/components/invite-members/index.tsx
rename to packages/app/src/components/workspace-setting/member/InviteMemberModal.tsx
index 6fb020fc52..c066908ed0 100644
--- a/packages/app/src/components/invite-members/index.tsx
+++ b/packages/app/src/components/workspace-setting/member/InviteMemberModal.tsx
@@ -4,9 +4,9 @@ import { Modal, ModalWrapper, ModalCloseButton } from '@/ui/modal';
import { Button } from '@/ui/button';
import Input from '@/ui/input';
import { useState } from 'react';
-// import { getDataCenter } from '@affine/datacenter';
import { Avatar } from '@mui/material';
-import { setMember } from '@/hooks/mock-data/mock';
+import useMembers from '@/hooks/use-members';
+import { User } from '@affine/datacenter';
interface LoginModalProps {
open: boolean;
onClose: () => void;
@@ -43,46 +43,27 @@ export const debounce = any>(
};
const gmailReg = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@gmail\.com$/;
-export const InviteMembers = ({
+export const InviteMemberModal = ({
open,
onClose,
- workspaceId,
onInviteSuccess,
}: LoginModalProps) => {
const [email, setEmail] = useState('');
const [showMember, setShowMember] = useState(false);
const [showTip, setShowTip] = useState(false);
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const [userData, setUserData] = useState({});
+ const [userData, setUserData] = useState(null);
+ const { inviteMember, getUserByEmail } = useMembers();
const inputChange = (value: string) => {
setShowMember(true);
if (gmailReg.test(value)) {
setEmail(value);
setShowTip(false);
- setUserData({
- name: 'wxl',
- avatar: 'https://avatars.githubusercontent.com/u/20501502?v=4',
- email: value,
+ getUserByEmail(value).then(data => {
+ if (data?.name) {
+ setUserData(data);
+ setShowTip(false);
+ }
});
- // debounce(
- // () => {
- // getDataCenter()
- // .then(dc =>
- // dc.apis.getUserByEmail({
- // email: value,
- // workspace_id: workspaceId,
- // })
- // )
- // .then(data => {
- // if (data?.name) {
- // setUserData(data);
- // setShowTip(false);
- // }
- // });
- // },
- // 300,
- // true
- // )();
} else {
setShowTip(true);
}
@@ -118,8 +99,8 @@ export const InviteMembers = ({
Non-Gmail is not supported
) : (
- {userData?.avatar_url ? (
-
+ {userData?.avatar ? (
+
) : (
@@ -139,19 +120,9 @@ export const InviteMembers = ({