From 7713920b713aebaf23cd04992f98cd2512e20f36 Mon Sep 17 00:00:00 2001 From: pengx17 Date: Sun, 19 Jan 2025 10:00:04 +0000 Subject: [PATCH] fix(core): move openinapp guard to workspace scope (#9751) --- packages/frontend/apps/web/src/app.tsx | 13 +++++-------- .../core/src/desktop/pages/open-app/index.tsx | 5 +++-- .../core/src/desktop/pages/workspace/index.tsx | 17 +++++++++++------ .../open-in-app/views/open-in-app-page.tsx | 6 +++--- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/packages/frontend/apps/web/src/app.tsx b/packages/frontend/apps/web/src/app.tsx index 70869ccc5..339123092 100644 --- a/packages/frontend/apps/web/src/app.tsx +++ b/packages/frontend/apps/web/src/app.tsx @@ -4,7 +4,6 @@ import { router } from '@affine/core/desktop/router'; import { configureCommonModules } from '@affine/core/modules'; import { I18nProvider } from '@affine/core/modules/i18n'; import { LifecycleService } from '@affine/core/modules/lifecycle'; -import { OpenInAppGuard } from '@affine/core/modules/open-in-app'; import { configureLocalStorageStateStorageImpls, NbstoreProvider, @@ -100,13 +99,11 @@ export function App() { - - } - router={router} - future={future} - /> - + } + router={router} + future={future} + /> diff --git a/packages/frontend/core/src/desktop/pages/open-app/index.tsx b/packages/frontend/core/src/desktop/pages/open-app/index.tsx index c8e657d26..8a71d7b2b 100644 --- a/packages/frontend/core/src/desktop/pages/open-app/index.tsx +++ b/packages/frontend/core/src/desktop/pages/open-app/index.tsx @@ -27,11 +27,12 @@ const OpenUrl = () => { return null; } - params.delete('url'); - const urlObj = new URL(urlToOpen || ''); params.forEach((v, k) => { + if (k === 'url') { + return; + } urlObj.searchParams.set(k, v); }); diff --git a/packages/frontend/core/src/desktop/pages/workspace/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/index.tsx index e74b87fc0..0c997cae0 100644 --- a/packages/frontend/core/src/desktop/pages/workspace/index.tsx +++ b/packages/frontend/core/src/desktop/pages/workspace/index.tsx @@ -8,6 +8,7 @@ import { import { GlobalDialogService } from '@affine/core/modules/dialogs'; import { DndService } from '@affine/core/modules/dnd/services'; import { GlobalContextService } from '@affine/core/modules/global-context'; +import { OpenInAppGuard } from '@affine/core/modules/open-in-app'; import { type Workspace, type WorkspaceMetadata, @@ -330,7 +331,9 @@ const WorkspacePage = ({ meta }: { meta: WorkspaceMetadata }) => { return ( - + + + ); @@ -339,11 +342,13 @@ const WorkspacePage = ({ meta }: { meta: WorkspaceMetadata }) => { return ( - - - - - + + + + + + + ); diff --git a/packages/frontend/core/src/modules/open-in-app/views/open-in-app-page.tsx b/packages/frontend/core/src/modules/open-in-app/views/open-in-app-page.tsx index ac4906de9..4a8c48ad3 100644 --- a/packages/frontend/core/src/modules/open-in-app/views/open-in-app-page.tsx +++ b/packages/frontend/core/src/modules/open-in-app/views/open-in-app-page.tsx @@ -3,7 +3,7 @@ import { WorkspaceDialogService } from '@affine/core/modules/dialogs'; import { appIconMap, appNames } from '@affine/core/utils/channel'; import { Trans, useI18n } from '@affine/i18n'; import { LocalWorkspaceIcon, Logo1Icon } from '@blocksuite/icons/rc'; -import { useService } from '@toeverything/infra'; +import { useServiceOptional } from '@toeverything/infra'; import type { MouseEvent } from 'react'; import { useCallback } from 'react'; @@ -28,7 +28,7 @@ export const OpenInAppPage = ({ }: OpenAppProps) => { // default to open the current page in desktop app urlToOpen ??= getOpenUrlInDesktopAppLink(window.location.href, true); - const workspaceDialogService = useService(WorkspaceDialogService); + const workspaceDialogService = useServiceOptional(WorkspaceDialogService); const t = useI18n(); const openDownloadLink = useCallback(() => { @@ -41,7 +41,7 @@ export const OpenInAppPage = ({ const goToAppearanceSetting = useCallback( (e: MouseEvent) => { openHereClicked?.(e); - workspaceDialogService.open('setting', { + workspaceDialogService?.open('setting', { activeTab: 'appearance', }); },