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

(cherry picked from commit 822078e640)
This commit is contained in:
Alex Yang
2023-07-06 23:27:09 +08:00
parent 44dbe39001
commit f38978e7c9
6 changed files with 58 additions and 63 deletions
@@ -23,11 +23,11 @@ import { WorkSpaceSetting } from './workspace-setting';
type ActiveTab = GeneralSettingKeys | 'workspace' | 'account';
export type SettingProps = {
activeTab?: ActiveTab;
workspace?: AllWorkspace;
activeTab: ActiveTab;
workspace: AllWorkspace | null;
onSettingClick: (params: {
activeTab: ActiveTab;
workspace?: AllWorkspace;
workspace: AllWorkspace | null;
}) => void;
};
export const SettingModal: React.FC<SettingModalProps & SettingProps> = ({
@@ -52,6 +52,7 @@ export const SettingModal: React.FC<SettingModalProps & SettingProps> = ({
(key: GeneralSettingKeys) => {
onSettingClick({
activeTab: key,
workspace: null,
});
},
[onSettingClick]
@@ -66,7 +67,7 @@ export const SettingModal: React.FC<SettingModalProps & SettingProps> = ({
[onSettingClick]
);
const onAccountSettingClick = useCallback(() => {
onSettingClick({ activeTab: 'account' });
onSettingClick({ activeTab: 'account', workspace: null });
}, [onSettingClick]);
return (
@@ -86,7 +87,7 @@ export const SettingModal: React.FC<SettingModalProps & SettingProps> = ({
<div className="wrapper">
<div className="content">
{activeTab === 'workspace' && workspace ? (
<WorkSpaceSetting workspace={workspace} />
<WorkSpaceSetting key={workspace.id} workspace={workspace} />
) : null}
{generalSettingList.find(v => v.key === activeTab) ? (
<GeneralSetting generalKey={activeTab as GeneralSettingKeys} />
@@ -31,24 +31,7 @@ export const HelpIsland = ({
const [, setOpenOnboarding] = useAtom(openOnboardingModalAtom);
const [, setOpenSettingModalAtom] = useAtom(openSettingModalAtom);
const [spread, setShowSpread] = useState(false);
// const { triggerShortcutsModal, triggerContactModal } = useModal();
// const blockHub = useGlobalState(store => store.blockHub);
const t = useAFFiNEI18N();
//
// useEffect(() => {
// blockHub?.blockHubStatusUpdated.on(status => {
// if (status) {
// setShowSpread(false);
// }
// });
// return () => {
// blockHub?.blockHubStatusUpdated.dispose();
// };
// }, [blockHub]);
//
// useEffect(() => {
// spread && blockHub?.toggleMenu(false);
// }, [blockHub, spread]);
const [openShortCut, setOpenShortCut] = useState(false);
@@ -58,6 +41,7 @@ export const HelpIsland = ({
setOpenSettingModalAtom({
open: true,
activeTab: 'about',
workspace: null,
});
}, [setOpenSettingModalAtom]);