feat(core): remove workspace selectors in settings (#9705)

fix AF-2119
This commit is contained in:
pengx17
2025-01-15 07:37:24 +00:00
parent c31a0d28cf
commit 0bce5c6730
33 changed files with 223 additions and 349 deletions
@@ -86,9 +86,8 @@ export const AFFiNESharePage = (props: ShareMenuProps) => {
const onOpenWorkspaceSettings = useCallback(() => {
globalDialogService.open('setting', {
activeTab: 'workspace:preference',
workspaceMetadata: props.workspaceMetadata,
});
}, [globalDialogService, props.workspaceMetadata]);
}, [globalDialogService]);
const onClickAnyoneReadOnlyShare = useAsyncCallback(async () => {
if (isSharedPage) {
@@ -0,0 +1,22 @@
import { useWorkspace } from '@affine/core/components/hooks/use-workspace';
import { GlobalContextService } from '@affine/core/modules/global-context';
import { WorkspacesService } from '@affine/core/modules/workspace';
import { FrameworkScope, useLiveData, useService } from '@toeverything/infra';
export const CurrentWorkspaceScopeProvider = ({
children,
}: {
children: React.ReactNode;
}) => {
const globalContext = useService(GlobalContextService).globalContext;
const workspacesService = useService(WorkspacesService);
const workspaceMeta = useLiveData(workspacesService.list.workspaces$).find(
workspace => workspace.id === globalContext.workspaceId.get()
);
const workspace = useWorkspace(workspaceMeta);
if (!workspace) {
// todo(@pengx17): render a loading/error component here if not found?
return null;
}
return <FrameworkScope scope={workspace.scope}>{children}</FrameworkScope>;
};
@@ -148,11 +148,7 @@ export const RootAppSidebar = memo((): ReactElement => {
<SidebarContainer>
<div className={workspaceAndUserWrapper}>
<div className={workspaceWrapper}>
<WorkspaceNavigator
showEnableCloudButton
showSettingsButton
showSyncStatus
/>
<WorkspaceNavigator showEnableCloudButton showSyncStatus />
</div>
<UserInfo />
</div>
@@ -25,7 +25,6 @@ interface WorkspaceSelectorProps {
metadata: WorkspaceMetadata;
defaultDocId?: string;
}) => void;
showSettingsButton?: boolean;
showEnableCloudButton?: boolean;
showArrowDownIcon?: boolean;
showSyncStatus?: boolean;
@@ -38,7 +37,6 @@ export const WorkspaceSelector = ({
workspaceMetadata: outerWorkspaceMetadata,
onSelectWorkspace,
onCreatedWorkspace,
showSettingsButton,
showArrowDownIcon,
disable,
open: outerOpen,
@@ -89,7 +87,6 @@ export const WorkspaceSelector = ({
onClickWorkspace={onSelectWorkspace}
onCreatedWorkspace={onCreatedWorkspace}
showEnableCloudButton={showEnableCloudButton}
showSettingsButton={showSettingsButton}
/>
}
contentOptions={{
@@ -55,7 +55,6 @@ interface UserWithWorkspaceListProps {
metadata: WorkspaceMetadata;
defaultDocId?: string;
}) => void;
showSettingsButton?: boolean;
showEnableCloudButton?: boolean;
}
@@ -63,7 +62,6 @@ const UserWithWorkspaceListInner = ({
onEventEnd,
onClickWorkspace,
onCreatedWorkspace,
showSettingsButton,
showEnableCloudButton,
}: UserWithWorkspaceListProps) => {
const globalDialogService = useService(GlobalDialogService);
@@ -121,7 +119,6 @@ const UserWithWorkspaceListInner = ({
onEventEnd={onEventEnd}
onClickWorkspace={onClickWorkspace}
showEnableCloudButton={showEnableCloudButton}
showSettingsButton={showSettingsButton}
/>
<AddWorkspace
onAddWorkspace={onAddWorkspace}
@@ -50,13 +50,11 @@ const CloudWorkSpaceList = ({
server,
workspaces,
onClickWorkspace,
onClickWorkspaceSetting,
onClickEnableCloud,
}: {
server: Server;
workspaces: WorkspaceMetadata[];
onClickWorkspace: (workspaceMetadata: WorkspaceMetadata) => void;
onClickWorkspaceSetting?: (workspaceMetadata: WorkspaceMetadata) => void;
onClickEnableCloud?: (meta: WorkspaceMetadata) => void;
}) => {
const t = useI18n();
@@ -161,7 +159,6 @@ const CloudWorkSpaceList = ({
<WorkspaceList
items={workspaces}
onClick={onClickWorkspace}
onSettingClick={onClickWorkspaceSetting}
onEnableCloudClick={onClickEnableCloud}
/>
<MenuItem
@@ -215,16 +212,13 @@ export const AFFiNEWorkspaceList = ({
onEventEnd,
onClickWorkspace,
showEnableCloudButton,
showSettingsButton,
}: {
onClickWorkspace?: (workspaceMetadata: WorkspaceMetadata) => void;
onEventEnd?: () => void;
showSettingsButton?: boolean;
showEnableCloudButton?: boolean;
}) => {
const workspacesService = useService(WorkspacesService);
const workspaces = useLiveData(workspacesService.list.workspaces$);
const globalDialogService = useService(GlobalDialogService);
const confirmEnableCloud = useEnableCloud();
@@ -247,17 +241,6 @@ export const AFFiNEWorkspaceList = ({
[workspaces]
);
const onClickWorkspaceSetting = useCallback(
(workspaceMetadata: WorkspaceMetadata) => {
globalDialogService.open('setting', {
activeTab: 'workspace:preference',
workspaceMetadata,
});
onEventEnd?.();
},
[globalDialogService, onEventEnd]
);
const onClickEnableCloud = useCallback(
(meta: WorkspaceMetadata) => {
const { workspace, dispose } = workspacesService.open({ metadata: meta });
@@ -292,9 +275,6 @@ export const AFFiNEWorkspaceList = ({
({ flavour }) => flavour === server.id
)}
onClickWorkspace={handleClickWorkspace}
onClickWorkspaceSetting={
showSettingsButton ? onClickWorkspaceSetting : undefined
}
/>
<Divider size="thinner" />
</FrameworkScope>
@@ -303,9 +283,6 @@ export const AFFiNEWorkspaceList = ({
<LocalWorkspaces
workspaces={localWorkspaces}
onClickWorkspace={handleClickWorkspace}
onClickWorkspaceSetting={
showSettingsButton ? onClickWorkspaceSetting : undefined
}
onClickEnableCloud={
showEnableCloudButton ? onClickEnableCloud : undefined
}