feat:add leave workspace

This commit is contained in:
DiamondThree
2023-01-12 15:52:07 +08:00
parent 14c665757e
commit ede7a6bdaa
3 changed files with 30 additions and 36 deletions

View File

@@ -27,26 +27,12 @@ export const GeneralPage = ({ workspace }: { workspace: WorkspaceUnit }) => {
const handleChangeWorkSpaceName = (newName: string) => { const handleChangeWorkSpaceName = (newName: string) => {
setWorkspaceName(newName); setWorkspaceName(newName);
}; };
const handleClickDelete = () => {
setShowDelete(true);
};
const handleCloseDelete = () => {
setShowDelete(false);
};
const handleClickLeave = () => {
setShowLeave(true);
};
const handleCloseLeave = () => {
setShowLeave(false);
};
const handleUpdateWorkspaceName = () => { const handleUpdateWorkspaceName = () => {
currentWorkspace && currentWorkspace &&
updateWorkspace({ name: workspaceName }, currentWorkspace); updateWorkspace({ name: workspaceName }, currentWorkspace);
}; };
const fileChange = async (file: File) => { const fileChange = async (file: File) => {
// console.log('file: ', file);
setUploading(true); setUploading(true);
const blob = new Blob([file], { type: file.type }); const blob = new Blob([file], { type: file.type });
currentWorkspace && currentWorkspace &&
@@ -104,25 +90,39 @@ export const GeneralPage = ({ workspace }: { workspace: WorkspaceUnit }) => {
<StyledDeleteButtonContainer> <StyledDeleteButtonContainer>
{isOwner ? ( {isOwner ? (
<> <>
<Button type="danger" shape="circle" onClick={handleClickDelete}> <Button
type="danger"
shape="circle"
onClick={() => {
setShowDelete(true);
}}
>
Delete Workspace Delete Workspace
</Button> </Button>
<WorkspaceDelete <WorkspaceDelete
open={showDelete} open={showDelete}
onClose={handleCloseDelete} onClose={() => {
setShowDelete(false);
}}
workspace={workspace} workspace={workspace}
/> />
</> </>
) : ( ) : (
<> <>
<Button type="danger" shape="circle" onClick={handleClickLeave}> <Button
type="danger"
shape="circle"
onClick={() => {
setShowLeave(true);
}}
>
Leave Workspace Leave Workspace
</Button> </Button>
<WorkspaceLeave <WorkspaceLeave
open={showLeave} open={showLeave}
onClose={handleCloseLeave} onClose={() => {
workspaceName={workspaceName} setShowLeave(false);
workspaceId={workspace.id} }}
/> />
</> </>
)} )}

View File

@@ -7,29 +7,19 @@ import {
} from './style'; } from './style';
import { ModalCloseButton } from '@/ui/modal'; import { ModalCloseButton } from '@/ui/modal';
import { Button } from '@/ui/button'; import { Button } from '@/ui/button';
import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
// import { getDataCenter } from '@affine/datacenter'; // import { getDataCenter } from '@affine/datacenter';
// import { useAppState } from '@/providers/app-state-provider'; // import { useAppState } from '@/providers/app-state-provider';
interface WorkspaceDeleteProps { interface WorkspaceDeleteProps {
open: boolean; open: boolean;
onClose: () => void; onClose: () => void;
workspaceName: string;
workspaceId: string;
} }
export const WorkspaceLeave = ({ export const WorkspaceLeave = ({ open, onClose }: WorkspaceDeleteProps) => {
open, const { leaveWorkSpace } = useWorkspaceHelper();
onClose,
workspaceId,
}: WorkspaceDeleteProps) => {
console.log('workspaceId: ', workspaceId);
// const router = useRouter();
// const { refreshWorkspacesMeta } = useAppState();
const handleLeave = async () => { const handleLeave = async () => {
// const dc = await getDataCenter(); await leaveWorkSpace();
// await dc.apis.leaveWorkspace({ id: workspaceId });
// // router.push(`/workspace/${nextWorkSpaceId}`);
// refreshWorkspacesMeta();
onClose(); onClose();
}; };

View File

@@ -47,10 +47,10 @@ export const useWorkspaceHelper = () => {
if (!user) { if (!user) {
await login(); await login();
} }
const newWorkspaceId = await dataCenter.enableWorkspaceCloud( const workspace = await dataCenter.enableWorkspaceCloud(
currentWorkspace currentWorkspace
); );
router.push(`/workspace/${newWorkspaceId}/setting`); workspace && router.push(`/workspace/${workspace.id}/setting`);
toast('Enabled success'); toast('Enabled success');
} }
}); });
@@ -60,6 +60,9 @@ export const useWorkspaceHelper = () => {
currentWorkspace && currentWorkspace &&
(await dataCenter.deleteWorkspace(currentWorkspace?.id)); (await dataCenter.deleteWorkspace(currentWorkspace?.id));
}; };
const leaveWorkSpace = async () => {
currentWorkspace && (await dataCenter.leaveWorkspace(currentWorkspace?.id));
};
return { return {
createWorkspace, createWorkspace,
@@ -67,5 +70,6 @@ export const useWorkspaceHelper = () => {
updateWorkspace, updateWorkspace,
enableWorkspace, enableWorkspace,
deleteWorkSpace, deleteWorkSpace,
leaveWorkSpace,
}; };
}; };