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 ea8391191f..c8e657d266 100644
--- a/packages/frontend/core/src/desktop/pages/open-app/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/open-app/index.tsx
@@ -1,10 +1,11 @@
+import { useNavigateHelper } from '@affine/core/components/hooks/use-navigate-helper';
import { GraphQLService } from '@affine/core/modules/cloud';
import { OpenInAppPage } from '@affine/core/modules/open-in-app/views/open-in-app-page';
import { appSchemes, channelToScheme } from '@affine/core/utils/channel';
import type { GetCurrentUserQuery } from '@affine/graphql';
import { getCurrentUserQuery } from '@affine/graphql';
import { useService } from '@toeverything/infra';
-import { useEffect, useState } from 'react';
+import { useCallback, useEffect, useState } from 'react';
import { useParams, useSearchParams } from 'react-router-dom';
import { AppContainer } from '../../components/app-container';
@@ -12,6 +13,15 @@ import { AppContainer } from '../../components/app-container';
const OpenUrl = () => {
const [params] = useSearchParams();
const urlToOpen = params.get('url');
+ const navigateHelper = useNavigateHelper();
+
+ const onOpenHere = useCallback(
+ (e: React.MouseEvent) => {
+ e.preventDefault();
+ navigateHelper.jumpToIndex();
+ },
+ [navigateHelper]
+ );
if (!urlToOpen) {
return null;
@@ -25,7 +35,9 @@ const OpenUrl = () => {
urlObj.searchParams.set(k, v);
});
- return ;
+ return (
+
+ );
};
/**
diff --git a/packages/frontend/core/src/modules/open-in-app/views/open-in-app-guard.tsx b/packages/frontend/core/src/modules/open-in-app/views/open-in-app-guard.tsx
index 79a344572d..e8f8e546cd 100644
--- a/packages/frontend/core/src/modules/open-in-app/views/open-in-app-guard.tsx
+++ b/packages/frontend/core/src/modules/open-in-app/views/open-in-app-guard.tsx
@@ -33,7 +33,7 @@ const WebOpenInAppGuard = ({ children }: { children: React.ReactNode }) => {
}
return shouldOpenInApp && !environment.isMobile ? (
-
+
) : (
children
);
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 3ffb28a1d2..77b67026b3 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
@@ -1,12 +1,10 @@
import { Button } from '@affine/component/ui/button';
-import { resolveLinkToDoc } from '@affine/core/modules/navigation';
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 type { MouseEvent } from 'react';
import { useCallback } from 'react';
-import { Link } from 'react-router-dom';
import { GlobalDialogService } from '../../dialogs';
import { getOpenUrlInDesktopAppLink } from '../utils';
@@ -17,12 +15,17 @@ let lastOpened = '';
interface OpenAppProps {
urlToOpen?: string | null;
openHereClicked?: (e: MouseEvent) => void;
+ mode?: 'auth' | 'open-doc'; // default to 'auth'
}
const channel = BUILD_CONFIG.appBuildType;
const url =
'https://affine.pro/download' + (channel !== 'stable' ? '/beta-canary' : '');
-export const OpenInAppPage = ({ urlToOpen, openHereClicked }: OpenAppProps) => {
+export const OpenInAppPage = ({
+ urlToOpen,
+ openHereClicked,
+ mode = 'auth',
+}: OpenAppProps) => {
// default to open the current page in desktop app
urlToOpen ??= getOpenUrlInDesktopAppLink(window.location.href, true);
const globalDialogService = useService(GlobalDialogService);
@@ -35,18 +38,6 @@ export const OpenInAppPage = ({ urlToOpen, openHereClicked }: OpenAppProps) => {
const appIcon = appIconMap[channel];
const appName = appNames[channel];
- const maybeDocLink = urlToOpen ? resolveLinkToDoc(urlToOpen) : null;
-
- const goToDocPage = useCallback(
- (e: MouseEvent) => {
- if (!maybeDocLink) {
- return;
- }
- openHereClicked?.(e);
- },
- [maybeDocLink, openHereClicked]
- );
-
const goToAppearanceSetting = useCallback(
(e: MouseEvent) => {
openHereClicked?.(e);
@@ -109,7 +100,7 @@ export const OpenInAppPage = ({ urlToOpen, openHereClicked }: OpenAppProps) => {
-
- {maybeDocLink ? (
+ {mode === 'open-doc' ? (