fix(core): move openinapp guard to workspace scope (#9751)
This commit is contained in:
@@ -4,7 +4,6 @@ import { router } from '@affine/core/desktop/router';
|
|||||||
import { configureCommonModules } from '@affine/core/modules';
|
import { configureCommonModules } from '@affine/core/modules';
|
||||||
import { I18nProvider } from '@affine/core/modules/i18n';
|
import { I18nProvider } from '@affine/core/modules/i18n';
|
||||||
import { LifecycleService } from '@affine/core/modules/lifecycle';
|
import { LifecycleService } from '@affine/core/modules/lifecycle';
|
||||||
import { OpenInAppGuard } from '@affine/core/modules/open-in-app';
|
|
||||||
import {
|
import {
|
||||||
configureLocalStorageStateStorageImpls,
|
configureLocalStorageStateStorageImpls,
|
||||||
NbstoreProvider,
|
NbstoreProvider,
|
||||||
@@ -100,13 +99,11 @@ export function App() {
|
|||||||
<CacheProvider value={cache}>
|
<CacheProvider value={cache}>
|
||||||
<I18nProvider>
|
<I18nProvider>
|
||||||
<AffineContext store={getCurrentStore()}>
|
<AffineContext store={getCurrentStore()}>
|
||||||
<OpenInAppGuard>
|
|
||||||
<RouterProvider
|
<RouterProvider
|
||||||
fallbackElement={<AppContainer fallback />}
|
fallbackElement={<AppContainer fallback />}
|
||||||
router={router}
|
router={router}
|
||||||
future={future}
|
future={future}
|
||||||
/>
|
/>
|
||||||
</OpenInAppGuard>
|
|
||||||
</AffineContext>
|
</AffineContext>
|
||||||
</I18nProvider>
|
</I18nProvider>
|
||||||
</CacheProvider>
|
</CacheProvider>
|
||||||
|
|||||||
@@ -27,11 +27,12 @@ const OpenUrl = () => {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
params.delete('url');
|
|
||||||
|
|
||||||
const urlObj = new URL(urlToOpen || '');
|
const urlObj = new URL(urlToOpen || '');
|
||||||
|
|
||||||
params.forEach((v, k) => {
|
params.forEach((v, k) => {
|
||||||
|
if (k === 'url') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
urlObj.searchParams.set(k, v);
|
urlObj.searchParams.set(k, v);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import {
|
|||||||
import { GlobalDialogService } from '@affine/core/modules/dialogs';
|
import { GlobalDialogService } from '@affine/core/modules/dialogs';
|
||||||
import { DndService } from '@affine/core/modules/dnd/services';
|
import { DndService } from '@affine/core/modules/dnd/services';
|
||||||
import { GlobalContextService } from '@affine/core/modules/global-context';
|
import { GlobalContextService } from '@affine/core/modules/global-context';
|
||||||
|
import { OpenInAppGuard } from '@affine/core/modules/open-in-app';
|
||||||
import {
|
import {
|
||||||
type Workspace,
|
type Workspace,
|
||||||
type WorkspaceMetadata,
|
type WorkspaceMetadata,
|
||||||
@@ -330,7 +331,9 @@ const WorkspacePage = ({ meta }: { meta: WorkspaceMetadata }) => {
|
|||||||
return (
|
return (
|
||||||
<FrameworkScope scope={workspace.scope}>
|
<FrameworkScope scope={workspace.scope}>
|
||||||
<DNDContextProvider>
|
<DNDContextProvider>
|
||||||
|
<OpenInAppGuard>
|
||||||
<AppContainer fallback />
|
<AppContainer fallback />
|
||||||
|
</OpenInAppGuard>
|
||||||
</DNDContextProvider>
|
</DNDContextProvider>
|
||||||
</FrameworkScope>
|
</FrameworkScope>
|
||||||
);
|
);
|
||||||
@@ -339,11 +342,13 @@ const WorkspacePage = ({ meta }: { meta: WorkspaceMetadata }) => {
|
|||||||
return (
|
return (
|
||||||
<FrameworkScope scope={workspace.scope}>
|
<FrameworkScope scope={workspace.scope}>
|
||||||
<DNDContextProvider>
|
<DNDContextProvider>
|
||||||
|
<OpenInAppGuard>
|
||||||
<AffineErrorBoundary height="100vh">
|
<AffineErrorBoundary height="100vh">
|
||||||
<WorkspaceLayout>
|
<WorkspaceLayout>
|
||||||
<WorkbenchRoot />
|
<WorkbenchRoot />
|
||||||
</WorkspaceLayout>
|
</WorkspaceLayout>
|
||||||
</AffineErrorBoundary>
|
</AffineErrorBoundary>
|
||||||
|
</OpenInAppGuard>
|
||||||
</DNDContextProvider>
|
</DNDContextProvider>
|
||||||
</FrameworkScope>
|
</FrameworkScope>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { WorkspaceDialogService } from '@affine/core/modules/dialogs';
|
|||||||
import { appIconMap, appNames } from '@affine/core/utils/channel';
|
import { appIconMap, appNames } from '@affine/core/utils/channel';
|
||||||
import { Trans, useI18n } from '@affine/i18n';
|
import { Trans, useI18n } from '@affine/i18n';
|
||||||
import { LocalWorkspaceIcon, Logo1Icon } from '@blocksuite/icons/rc';
|
import { LocalWorkspaceIcon, Logo1Icon } from '@blocksuite/icons/rc';
|
||||||
import { useService } from '@toeverything/infra';
|
import { useServiceOptional } from '@toeverything/infra';
|
||||||
import type { MouseEvent } from 'react';
|
import type { MouseEvent } from 'react';
|
||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ export const OpenInAppPage = ({
|
|||||||
}: OpenAppProps) => {
|
}: OpenAppProps) => {
|
||||||
// default to open the current page in desktop app
|
// default to open the current page in desktop app
|
||||||
urlToOpen ??= getOpenUrlInDesktopAppLink(window.location.href, true);
|
urlToOpen ??= getOpenUrlInDesktopAppLink(window.location.href, true);
|
||||||
const workspaceDialogService = useService(WorkspaceDialogService);
|
const workspaceDialogService = useServiceOptional(WorkspaceDialogService);
|
||||||
const t = useI18n();
|
const t = useI18n();
|
||||||
|
|
||||||
const openDownloadLink = useCallback(() => {
|
const openDownloadLink = useCallback(() => {
|
||||||
@@ -41,7 +41,7 @@ export const OpenInAppPage = ({
|
|||||||
const goToAppearanceSetting = useCallback(
|
const goToAppearanceSetting = useCallback(
|
||||||
(e: MouseEvent) => {
|
(e: MouseEvent) => {
|
||||||
openHereClicked?.(e);
|
openHereClicked?.(e);
|
||||||
workspaceDialogService.open('setting', {
|
workspaceDialogService?.open('setting', {
|
||||||
activeTab: 'appearance',
|
activeTab: 'appearance',
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user