fix: remove workspace not working (#3140)

(cherry picked from commit ddb2931f38)
This commit is contained in:
Alex Yang
2023-07-11 12:37:47 +08:00
parent 6815110727
commit 74e6fd8d4a
5 changed files with 49 additions and 5 deletions

View File

@@ -84,7 +84,7 @@ export const SettingModal: React.FC<SettingModalProps & SettingProps> = ({
onAccountSettingClick={onAccountSettingClick}
/>
<div className={settingContent}>
<div data-testid="setting-modal-content" className={settingContent}>
<div className="wrapper">
<div className="content">
{activeTab === 'workspace' && workspaceId ? (

View File

@@ -1,7 +1,9 @@
import { usePassiveWorkspaceEffect } from '@toeverything/hooks/use-block-suite-workspace';
import { useSetAtom } from 'jotai';
import { Suspense, useCallback } from 'react';
import { getUIAdapter } from '../../../../adapters/workspace';
import { openSettingModalAtom } from '../../../../atoms';
import { useOnTransformWorkspace } from '../../../../hooks/root/use-on-transform-workspace';
import { useWorkspace } from '../../../../hooks/use-workspace';
import { useAppHelper } from '../../../../hooks/use-workspaces';
@@ -9,15 +11,17 @@ import { useAppHelper } from '../../../../hooks/use-workspaces';
export const WorkspaceSetting = ({ workspaceId }: { workspaceId: string }) => {
const workspace = useWorkspace(workspaceId);
usePassiveWorkspaceEffect(workspace.blockSuiteWorkspace);
const setSettingModal = useSetAtom(openSettingModalAtom);
const helper = useAppHelper();
const { NewSettingsDetail } = getUIAdapter(workspace.flavour);
const onDeleteWorkspace = useCallback(
async (id: string) => {
return helper.deleteWorkspace(id);
await helper.deleteWorkspace(id);
setSettingModal(prev => ({ ...prev, open: false, workspaceId: null }));
},
[helper]
[setSettingModal, helper]
);
const onTransformWorkspace = useOnTransformWorkspace();

View File

@@ -284,7 +284,7 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
setOpenQuickSearchModalAtom(true);
}, [setOpenQuickSearchModalAtom]);
const [, setOpenSettingModalAtom] = useAtom(openSettingModalAtom);
const setOpenSettingModalAtom = useSetAtom(openSettingModalAtom);
const handleOpenSettingModal = useCallback(() => {
setOpenSettingModalAtom({

View File

@@ -1,5 +1,6 @@
import { WorkspaceSubPath } from '@affine/env/workspace';
import {
rootCurrentPageIdAtom,
rootCurrentWorkspaceIdAtom,
rootWorkspacesMetadataAtom,
} from '@affine/workspace/atom';
@@ -124,6 +125,7 @@ export const AllWorkspaceModals = (): ReactElement => {
const [currentWorkspaceId, setCurrentWorkspaceId] = useAtom(
rootCurrentWorkspaceIdAtom
);
const setCurrentPageId = useSetAtom(rootCurrentPageIdAtom);
const [transitioning, transition] = useTransition();
const [, setOpenSettingModalAtom] = useAtom(openSettingModalAtom);
@@ -169,11 +171,17 @@ export const AllWorkspaceModals = (): ReactElement => {
workspaceId => {
setOpenWorkspacesModal(false);
setCurrentWorkspaceId(workspaceId);
setCurrentPageId(null);
jumpToSubPath(workspaceId, WorkspaceSubPath.ALL).catch(error => {
console.error(error);
});
},
[jumpToSubPath, setCurrentWorkspaceId, setOpenWorkspacesModal]
[
jumpToSubPath,
setCurrentPageId,
setCurrentWorkspaceId,
setOpenWorkspacesModal,
]
)}
onClickWorkspaceSetting={handleOpenSettingModal}
onNewWorkspace={useCallback(() => {