From 5f40fbc69c4a1e5fed0b7c9444009c2df52cd593 Mon Sep 17 00:00:00 2001 From: L-Sun Date: Fri, 8 Nov 2024 11:06:12 +0000 Subject: [PATCH] feat(mobile): mobile at menu (#8727) Close [BS-1608](https://linear.app/affine-design/issue/BS-1608/mobile-menu), related PR: https://github.com/toeverything/blocksuite/pull/8681 --- .../infra/src/modules/feature-flag/constant.ts | 8 ++++++++ .../specs/custom/widgets/linked.ts | 18 ++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/common/infra/src/modules/feature-flag/constant.ts b/packages/common/infra/src/modules/feature-flag/constant.ts index cff05a78a..349a7f930 100644 --- a/packages/common/infra/src/modules/feature-flag/constant.ts +++ b/packages/common/infra/src/modules/feature-flag/constant.ts @@ -162,6 +162,14 @@ export const AFFINE_FLAGS = { configurable: false, defaultState: isMobile, }, + enable_mobile_linked_doc_menu: { + category: 'blocksuite', + bsFlag: 'enable_mobile_linked_doc_menu', + displayName: 'Mobile Linked Doc Widget', + description: 'Enables the mobile linked doc menu.', + configurable: false, + defaultState: isMobile, + }, enable_snapshot_import_export: { category: 'affine', displayName: 'Enable Snapshot Import Export', diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/linked.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/linked.ts index dc2b36ebc..5970c9554 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/linked.ts +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/specs/custom/widgets/linked.ts @@ -4,7 +4,10 @@ import { JournalService } from '@affine/core/modules/journal'; import { I18n } from '@affine/i18n'; import { track } from '@affine/track'; import type { EditorHost } from '@blocksuite/affine/block-std'; -import type { AffineInlineEditor } from '@blocksuite/affine/blocks'; +import type { + AffineInlineEditor, + LinkedWidgetConfig, +} from '@blocksuite/affine/blocks'; import { LinkedWidgetUtils } from '@blocksuite/affine/blocks'; import type { DocMeta } from '@blocksuite/affine/store'; import { type FrameworkProvider, WorkspaceService } from '@toeverything/infra'; @@ -74,7 +77,7 @@ function createNewDocMenuGroup( // TODO: fix the type export function createLinkedWidgetConfig( framework: FrameworkProvider -): Partial> { +): Partial { return { getMenus: ( query: string, @@ -142,6 +145,17 @@ export function createLinkedWidgetConfig( ), ]); }, + mobile: { + useScreenHeight: BUILD_CONFIG.isIOS, + scrollContainer: window, + scrollTopOffset: () => { + const header = document.querySelector('header'); + if (!header) return 0; + + const { y, height } = header.getBoundingClientRect(); + return y + height; + }, + }, }; }