fix: cleanup workspace when switch setting panel (#3072)

This commit is contained in:
Alex Yang
2023-07-06 23:27:09 +08:00
committed by GitHub
parent fafd93f7dc
commit 822078e640
6 changed files with 58 additions and 63 deletions
+5 -39
View File
@@ -40,7 +40,6 @@ import type { FC, PropsWithChildren, ReactElement } from 'react';
import { lazy, Suspense, useCallback, useEffect, useMemo } from 'react';
import { WorkspaceAdapters } from '../adapters/workspace';
import type { SettingAtom } from '../atoms';
import {
openQuickSearchModalAtom,
openSettingModalAtom,
@@ -72,11 +71,6 @@ const QuickSearchModal = lazy(() =>
default: module.QuickSearchModal,
}))
);
const SettingModal = lazy(() =>
import('../components/affine/setting-modal').then(module => ({
default: module.SettingModal,
}))
);
function DefaultProvider({ children }: PropsWithChildren) {
return <>{children}</>;
@@ -101,37 +95,6 @@ export const QuickSearch: FC = () => {
/>
);
};
export const Setting: FC = () => {
const [currentWorkspace] = useCurrentWorkspace();
const [{ open, workspace, activeTab }, setOpenSettingModalAtom] =
useAtom(openSettingModalAtom);
const blockSuiteWorkspace = currentWorkspace?.blockSuiteWorkspace;
const onSettingClick = useCallback(
({
activeTab,
workspace,
}: Pick<SettingAtom, 'activeTab' | 'workspace'>) => {
setOpenSettingModalAtom(prev => ({ ...prev, activeTab, workspace }));
},
[setOpenSettingModalAtom]
);
if (!blockSuiteWorkspace) {
return null;
}
return (
<SettingModal
open={open}
activeTab={activeTab || 'appearance'}
workspace={workspace}
onSettingClick={onSettingClick}
setOpen={open => {
setOpenSettingModalAtom(prev => ({ ...prev, open }));
}}
/>
);
};
export const AllWorkspaceContext = ({
children,
@@ -358,7 +321,11 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
const [, setOpenSettingModalAtom] = useAtom(openSettingModalAtom);
const handleOpenSettingModal = useCallback(() => {
setOpenSettingModalAtom({ activeTab: 'appearance', open: true });
setOpenSettingModalAtom({
activeTab: 'appearance',
workspace: null,
open: true,
});
}, [setOpenSettingModalAtom]);
const resizing = useAtomValue(appSidebarResizingAtom);
@@ -448,7 +415,6 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
</DndContext>
<QuickSearch />
{runtimeConfig.enableNotificationCenter && <NotificationCenter />}
<Setting />
</>
);
};