feat(editor): extract linked doc widget package (#11589)

Close [BS-2738](https://github.com/toeverything/AFFiNE/pull/11589)
This commit is contained in:
Saul-Mirone
2025-04-10 15:42:46 +00:00
parent 149433b8d0
commit 4f9a4e739a
59 changed files with 200 additions and 139 deletions

View File

@@ -5,8 +5,8 @@ import type {
SearchTagMenuAction,
} from '@affine/core/modules/search-menu/services';
import type { Collection } from '@affine/env/filter';
import type { LinkedMenuGroup } from '@blocksuite/affine/blocks/root';
import type { DocMeta, Store } from '@blocksuite/affine/store';
import type { LinkedMenuGroup } from '@blocksuite/affine/widgets/linked-doc';
import type { Signal } from '@preact/signals-core';
export type ChipState = 'candidate' | 'processing' | 'finished' | 'failed';

View File

@@ -89,7 +89,7 @@ export const usePageHelper = (docCollection: Workspace) => {
const importFileAndOpen = useMemo(
() => async () => {
const { showImportModal } = await import(
'@blocksuite/affine/blocks/root'
'@blocksuite/affine/widgets/linked-doc'
);
const { promise, resolve, reject } =
Promise.withResolvers<

View File

@@ -1,10 +1,10 @@
import { WorkspaceServerService } from '@affine/core/modules/cloud';
import { EditorSettingService } from '@affine/core/modules/editor-setting';
import { DatabaseConfigExtension } from '@blocksuite/affine/blocks/database';
import { RootBlockConfigExtension } from '@blocksuite/affine/blocks/root';
import { ToolbarMoreMenuConfigExtension } from '@blocksuite/affine/components/toolbar';
import { EditorSettingExtension } from '@blocksuite/affine/shared/services';
import type { ExtensionType } from '@blocksuite/affine/store';
import { LinkedWidgetConfigExtension } from '@blocksuite/affine/widgets/linked-doc';
import type { FrameworkProvider } from '@toeverything/infra';
import { createDatabaseOptionsConfig } from './database';
@@ -24,9 +24,7 @@ export function getEditorConfigExtension(
return [
EditorSettingExtension(editorSettingService.editorSetting.settingSignal),
DatabaseConfigExtension(createDatabaseOptionsConfig(framework)),
RootBlockConfigExtension({
linkedWidget: createLinkedWidgetConfig(framework),
}),
LinkedWidgetConfigExtension(createLinkedWidgetConfig(framework)),
ToolbarMoreMenuConfigExtension(createToolbarMoreMenuConfig(framework)),
createCustomToolbarExtension(editorSettingService.editorSetting, baseUrl),

View File

@@ -1,5 +1,5 @@
import { AtMenuConfigService } from '@affine/core/modules/at-menu-config/services';
import type { LinkedWidgetConfig } from '@blocksuite/affine/blocks/root';
import type { LinkedWidgetConfig } from '@blocksuite/affine/widgets/linked-doc';
import { type FrameworkProvider } from '@toeverything/infra';
export function createLinkedWidgetConfig(

View File

@@ -7,13 +7,6 @@ import { EditorService } from '@affine/core/modules/editor';
import { getAFFiNEWorkspaceSchema } from '@affine/core/modules/workspace/global-schema';
import { useI18n } from '@affine/i18n';
import { track } from '@affine/track';
import {
createAssetsArchive,
download,
HtmlTransformer,
MarkdownTransformer,
ZipTransformer,
} from '@blocksuite/affine/blocks/root';
import { ExportManager } from '@blocksuite/affine/blocks/surface';
import {
docLinkBaseURLMiddleware,
@@ -25,6 +18,13 @@ import {
import { printToPdf } from '@blocksuite/affine/shared/utils';
import type { BlockStdScope } from '@blocksuite/affine/std';
import { type Store, Transformer } from '@blocksuite/affine/store';
import {
createAssetsArchive,
download,
HtmlTransformer,
MarkdownTransformer,
ZipTransformer,
} from '@blocksuite/affine/widgets/linked-doc';
import { useLiveData, useService } from '@toeverything/infra';
import { useSetAtom } from 'jotai';
import { nanoid } from 'nanoid';

View File

@@ -31,8 +31,8 @@ import {
} from '@affine/core/modules/workspace';
import { useI18n } from '@affine/i18n';
import track from '@affine/track';
import { ZipTransformer } from '@blocksuite/affine/blocks/root';
import type { DocMode } from '@blocksuite/affine/model';
import { ZipTransformer } from '@blocksuite/affine/widgets/linked-doc';
import {
effect,
fromPromise,

View File

@@ -12,14 +12,14 @@ import {
import { DebugLogger } from '@affine/debug';
import { useI18n } from '@affine/i18n';
import track from '@affine/track';
import { openFileOrFiles } from '@blocksuite/affine/shared/utils';
import type { Workspace } from '@blocksuite/affine/store';
import {
HtmlTransformer,
MarkdownTransformer,
NotionHtmlTransformer,
ZipTransformer,
} from '@blocksuite/affine/blocks/root';
import { openFileOrFiles } from '@blocksuite/affine/shared/utils';
import type { Workspace } from '@blocksuite/affine/store';
} from '@blocksuite/affine/widgets/linked-doc';
import {
ExportToHtmlIcon,
ExportToMarkdownIcon,

View File

@@ -15,7 +15,7 @@ import {
type WorkspaceMetadata,
WorkspacesService,
} from '@affine/core/modules/workspace';
import { ZipTransformer } from '@blocksuite/affine/blocks/root';
import { ZipTransformer } from '@blocksuite/affine/widgets/linked-doc';
import {
FrameworkScope,
LiveData,

View File

@@ -7,12 +7,6 @@ import {
} from '@affine/graphql';
import { I18n, i18nTime } from '@affine/i18n';
import track from '@affine/track';
import {
type LinkedMenuGroup,
type LinkedMenuItem,
type LinkedWidgetConfig,
LinkedWidgetUtils,
} from '@blocksuite/affine/blocks/root';
import type { DocMode } from '@blocksuite/affine/model';
import { DocModeProvider } from '@blocksuite/affine/shared/services';
import type { AffineInlineEditor } from '@blocksuite/affine/shared/types';
@@ -23,6 +17,12 @@ import {
} from '@blocksuite/affine/std';
import type { DocMeta } from '@blocksuite/affine/store';
import { Text } from '@blocksuite/affine/store';
import {
type LinkedMenuGroup,
type LinkedMenuItem,
type LinkedWidgetConfig,
LinkedWidgetUtils,
} from '@blocksuite/affine/widgets/linked-doc';
import {
DateTimeIcon,
NewXxxEdgelessIcon,

View File

@@ -1,4 +1,4 @@
import { MarkdownTransformer } from '@blocksuite/affine/blocks/root';
import { MarkdownTransformer } from '@blocksuite/affine/widgets/linked-doc';
import { Service } from '@toeverything/infra';
import { DocsService } from '../../doc';

View File

@@ -1,5 +1,5 @@
import { ZipTransformer } from '@blocksuite/affine/blocks/root';
import type { DocMode } from '@blocksuite/affine/model';
import { ZipTransformer } from '@blocksuite/affine/widgets/linked-doc';
import { Service } from '@toeverything/infra';
import { DocsService } from '../../doc';

View File

@@ -1,4 +1,4 @@
import { MarkdownTransformer } from '@blocksuite/affine/blocks/root';
import { MarkdownTransformer } from '@blocksuite/affine/widgets/linked-doc';
import { Entity } from '@toeverything/infra';
import type { TagService } from '../../tag';

View File

@@ -4,12 +4,12 @@ import type {
} from '@affine/core/components/page-list';
import { fuzzyMatch } from '@affine/core/utils/fuzzy-match';
import { I18n } from '@affine/i18n';
import { createSignalFromObservable } from '@blocksuite/affine/shared/utils';
import type { DocMeta } from '@blocksuite/affine/store';
import type {
LinkedMenuGroup,
LinkedMenuItem,
} from '@blocksuite/affine/blocks/root';
import { createSignalFromObservable } from '@blocksuite/affine/shared/utils';
import type { DocMeta } from '@blocksuite/affine/store';
} from '@blocksuite/affine/widgets/linked-doc';
import { CollectionsIcon } from '@blocksuite/icons/lit';
import { computed } from '@preact/signals-core';
import { Service } from '@toeverything/infra';

View File

@@ -4,7 +4,7 @@ import '../blocksuite/block-suite-editor';
import { DebugLogger } from '@affine/debug';
import { DEFAULT_WORKSPACE_NAME } from '@affine/env/constant';
import onboardingUrl from '@affine/templates/onboarding.zip';
import { ZipTransformer } from '@blocksuite/affine/blocks/root';
import { ZipTransformer } from '@blocksuite/affine/widgets/linked-doc';
import { DocsService } from '../modules/doc';
import {