feat: member init

This commit is contained in:
DiamondThree
2023-01-05 19:21:35 +08:00
parent 2773b3e489
commit b6542b0245
5 changed files with 32 additions and 58 deletions

View File

@@ -21,7 +21,6 @@ interface WorkspaceDeleteProps {
onClose: () => void;
workspaceName: string;
workspaceId: string;
nextWorkSpaceId: string;
}
export const WorkspaceDelete = ({
@@ -29,7 +28,6 @@ export const WorkspaceDelete = ({
onClose,
workspaceId,
workspaceName,
nextWorkSpaceId,
}: WorkspaceDeleteProps) => {
const [deleteStr, setDeleteStr] = useState<string>('');
const router = useRouter();

View File

@@ -12,7 +12,6 @@ import Input from '@/ui/input';
import { getDataCenter } from '@affine/datacenter';
import { useAppState } from '@/providers/app-state-provider';
import { WorkspaceDelete } from './delete';
import { Workspace as StoreWorkspace } from '@blocksuite/store';
import { debounce } from '@/utils';
import { WorkspaceLeave } from './leave';
import { Upload } from '@/components/file-upload';
@@ -23,18 +22,8 @@ import {
Workspace,
} from '@/hooks/mock-data/mock';
export const GeneralPage = ({
workspace,
}: {
workspace: Workspace;
workspaces: Record<string, StoreWorkspace | null>;
}) => {
const {
currentWorkspace,
workspacesMeta,
workspaces,
refreshWorkspacesMeta,
} = useAppState();
export const GeneralPage = ({ workspace }: { workspace: Workspace }) => {
const { currentWorkspace, refreshWorkspacesMeta } = useAppState();
useEffect(() => {
setWorkspaceName(workspace.name);
const user = getUserInfo();
@@ -53,13 +42,6 @@ export const GeneralPage = ({
const handleChangeWorkSpaceName = (newName: string) => {
setWorkspaceName(newName);
};
const currentWorkspaceIndex = workspacesMeta.findIndex(
meta => meta.id === workspace.id
);
const nextWorkSpaceId =
currentWorkspaceIndex === workspacesMeta.length - 1
? workspacesMeta[currentWorkspaceIndex - 1]?.id
: workspacesMeta[currentWorkspaceIndex + 1]?.id;
const handleClickDelete = () => {
setShowDelete(true);
};
@@ -87,7 +69,7 @@ export const GeneralPage = ({
});
if (blobId) {
currentWorkspace?.meta.setAvatar(blobId);
workspaces[workspace.id]?.meta.setAvatar(blobId);
// workspaces[workspace.id]?.meta.setAvatar(blobId);
setUploading(false);
debouncedRefreshWorkspacesMeta();
}
@@ -97,15 +79,8 @@ export const GeneralPage = ({
<div>
<StyledSettingH2 marginTop={56}>Workspace Avatar</StyledSettingH2>
<StyledSettingAvatarContent>
<StyledSettingAvatar
alt="workspace avatar"
src={
workspaces[workspace.id]?.meta.avatar
? '/api/blob/' + workspaces[workspace.id]?.meta.avatar
: ''
}
>
{workspaces[workspace.id]?.meta.name[0]}
<StyledSettingAvatar alt="workspace avatar" src={''}>
AFFiNE
</StyledSettingAvatar>
<Upload
accept="image/gif,image/jpeg,image/jpg,image/png,image/svg"
@@ -169,7 +144,6 @@ export const GeneralPage = ({
onClose={handleCloseDelete}
workspaceName={workspaceName}
workspaceId={workspace.id}
nextWorkSpaceId={nextWorkSpaceId}
/>
</>
) : (
@@ -182,7 +156,6 @@ export const GeneralPage = ({
onClose={handleCloseLeave}
workspaceName={workspaceName}
workspaceId={workspace.id}
nextWorkSpaceId={nextWorkSpaceId}
/>
</>
)}

View File

@@ -16,13 +16,11 @@ interface WorkspaceDeleteProps {
onClose: () => void;
workspaceName: string;
workspaceId: string;
nextWorkSpaceId: string;
}
export const WorkspaceLeave = ({
open,
onClose,
nextWorkSpaceId,
workspaceId,
}: WorkspaceDeleteProps) => {
const router = useRouter();
@@ -30,7 +28,7 @@ export const WorkspaceLeave = ({
const handleLeave = async () => {
const dc = await getDataCenter();
await dc.apis.leaveWorkspace({ id: workspaceId });
router.push(`/workspace/${nextWorkSpaceId}`);
// router.push(`/workspace/${nextWorkSpaceId}`);
refreshWorkspacesMeta();
onClose();
};

View File

@@ -45,7 +45,9 @@ import { useAppState } from '@/providers/app-state-provider';
import { GeneralPage } from './general';
import {
getActiveWorkspace,
getUserInfo,
setWorkspacePublish,
User,
Workspace,
} from '@/hooks/mock-data/mock';
@@ -109,7 +111,7 @@ export const WorkspaceSetting = ({
isShow,
onClose,
}: WorkspaceSettingProps) => {
const { workspaces } = useAppState();
// const { workspaces } = useAppState();
const [activeTab, setActiveTab] = useState<ActiveTab>(ActiveTab.general);
const handleTabChange = (tab: ActiveTab) => {
setActiveTab(tab);
@@ -143,7 +145,7 @@ export const WorkspaceSetting = ({
) : null}
<StyledSettingContent>
{activeTab === ActiveTab.general && (
<GeneralPage workspace={workspace} workspaces={workspaces} />
<GeneralPage workspace={workspace} />
)}
{activeTab === ActiveTab.members && workspace && (
<MembersPage workspace={workspace} />
@@ -160,23 +162,27 @@ export const WorkspaceSetting = ({
const MembersPage = ({ workspace }: { workspace: Workspace }) => {
const [isInviteModalShow, setIsInviteModalShow] = useState(false);
const [members, setMembers] = useState<Member[]>([]);
const refreshMembers = useCallback(() => {
getDataCenter()
.then(dc =>
dc.apis.getWorkspaceMembers({
id: workspace.id,
})
)
.then(data => {
setMembers(data);
})
.catch(err => {
console.log(err);
});
}, [workspace.id]);
const [userInfo, setUserInfo] = useState<User>();
// const refreshMembers = useCallback(() => {
// getDataCenter()
// .then(dc =>
// dc.apis.getWorkspaceMembers({
// id: workspace.id,
// })
// )
// .then(data => {
// setMembers(data);
// })
// .catch(err => {
// console.log(err);
// });
// }, [workspace.id]);
useEffect(() => {
refreshMembers();
}, [refreshMembers]);
const user = getUserInfo();
user && setUserInfo(user);
// refreshMembers();
}, []);
return (
<div>
@@ -240,7 +246,7 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
.then(() => {
// console.log('data: ', data);
toast('Moved to Trash');
refreshMembers();
// refreshMembers();
});
// });
}}
@@ -280,7 +286,7 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => {
setIsInviteModalShow(false);
}}
onInviteSuccess={() => {
refreshMembers();
// refreshMembers();
}}
workspaceId={workspace.id}
open={isInviteModalShow}

View File

@@ -16,7 +16,6 @@ export const WorkspaceSelector = () => {
setWorkspaceListShow(true);
}
});
const setWorkspace = () => {
const workspace = getActiveWorkspace();
setWorkSpace(workspace);