mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-22 00:37:05 +08:00
feat(core): bump blocksuite (#8114)
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
type EdgelessRootService,
|
||||
type ImageSelection,
|
||||
type PageRootService,
|
||||
TelemetryProvider,
|
||||
} from '@blocksuite/blocks';
|
||||
import { BlocksUtils, NoteDisplayMode } from '@blocksuite/blocks';
|
||||
import {
|
||||
@@ -304,7 +305,7 @@ const SAVE_CHAT_TO_BLOCK_ACTION: ChatAction = {
|
||||
const { notificationService } = rootService;
|
||||
const docModeService = host.std.get(DocModeProvider);
|
||||
const { layer } = surfaceService;
|
||||
const curMode = docModeService.getMode();
|
||||
const curMode = docModeService.getEditorMode() || 'page';
|
||||
const viewportCenter = getViewportCenter(
|
||||
curMode,
|
||||
rootService as PageRootService
|
||||
@@ -313,7 +314,7 @@ const SAVE_CHAT_TO_BLOCK_ACTION: ChatAction = {
|
||||
// If current mode is not edgeless, switch to edgeless mode first
|
||||
if (curMode !== 'edgeless') {
|
||||
// Set mode to edgeless
|
||||
docModeService.setMode('edgeless' as DocMode);
|
||||
docModeService.setEditorMode('edgeless' as DocMode);
|
||||
// Notify user to switch to edgeless mode
|
||||
notificationService?.notify({
|
||||
title: 'Save chat to a block',
|
||||
@@ -354,7 +355,8 @@ const SAVE_CHAT_TO_BLOCK_ACTION: ChatAction = {
|
||||
return false;
|
||||
}
|
||||
|
||||
rootService.telemetryService?.track('CanvasElementAdded', {
|
||||
const telemetryService = host.std.getOptional(TelemetryProvider);
|
||||
telemetryService?.track('CanvasElementAdded', {
|
||||
control: 'manually save',
|
||||
page: 'whiteboard editor',
|
||||
module: 'ai chat panel',
|
||||
@@ -463,7 +465,7 @@ const CREATE_AS_LINKED_DOC = {
|
||||
|
||||
const service = host.std.getService<EdgelessRootService>('affine:page');
|
||||
const docModeService = host.std.get(DocModeProvider);
|
||||
const mode = docModeService.getMode();
|
||||
const mode = docModeService.getEditorMode();
|
||||
if (mode !== 'edgeless') {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ export async function frameToCanvas(
|
||||
) {
|
||||
const edgelessRoot = getEdgelessRootFromEditor(editor);
|
||||
const { notes, frames, shapes, images } = BlocksUtils.splitElements(
|
||||
edgelessRoot.service.frame.getElementsInFrame(frame, true)
|
||||
edgelessRoot.service.frame.getElementsInFrameBound(frame, true)
|
||||
);
|
||||
if (notes.length + frames.length + images.length + shapes.length === 0) {
|
||||
return;
|
||||
@@ -106,7 +106,10 @@ export const getFirstImageInFrame = (
|
||||
editor: EditorHost
|
||||
) => {
|
||||
const edgelessRoot = getEdgelessRootFromEditor(editor);
|
||||
const elements = edgelessRoot.service.frame.getElementsInFrame(frame, false);
|
||||
const elements = edgelessRoot.service.frame.getElementsInFrameBound(
|
||||
frame,
|
||||
false
|
||||
);
|
||||
const image = elements.find(ele => {
|
||||
if (!BlocksUtils.isCanvasElement(ele)) {
|
||||
return ele.flavour === 'affine:image';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { MindmapElementModel } from '@blocksuite/affine-block-surface';
|
||||
import { fitContent } from '@blocksuite/affine-block-surface';
|
||||
import type { EditorHost } from '@blocksuite/block-std';
|
||||
import type {
|
||||
AffineAIPanelWidget,
|
||||
@@ -5,7 +7,6 @@ import type {
|
||||
EdgelessCopilotWidget,
|
||||
EdgelessElementToolbarWidget,
|
||||
EdgelessRootService,
|
||||
MindmapElementModel,
|
||||
ShapeElementModel,
|
||||
SurfaceBlockModel,
|
||||
} from '@blocksuite/blocks';
|
||||
@@ -15,12 +16,12 @@ import {
|
||||
EDGELESS_TEXT_BLOCK_MIN_HEIGHT,
|
||||
EDGELESS_TEXT_BLOCK_MIN_WIDTH,
|
||||
EdgelessTextBlockModel,
|
||||
fitContent,
|
||||
ImageBlockModel,
|
||||
InsertBelowIcon,
|
||||
LightLoadingIcon,
|
||||
NoteDisplayMode,
|
||||
ResetIcon,
|
||||
TelemetryProvider,
|
||||
} from '@blocksuite/blocks';
|
||||
import { assertExists, Bound } from '@blocksuite/global/utils';
|
||||
import { html, type TemplateResult } from 'lit';
|
||||
@@ -435,7 +436,8 @@ export const responses: {
|
||||
});
|
||||
});
|
||||
|
||||
edgelessService.telemetryService?.track('CanvasElementAdded', {
|
||||
const telemetryService = host.std.getOptional(TelemetryProvider);
|
||||
telemetryService?.track('CanvasElementAdded', {
|
||||
control: 'ai',
|
||||
page: 'whiteboard editor',
|
||||
module: 'toolbar',
|
||||
|
||||
@@ -163,7 +163,12 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) {
|
||||
})
|
||||
);
|
||||
const docModeService = this.host.std.get(DocModeProvider);
|
||||
disposables.add(docModeService.onModeChange(() => this.requestUpdate()));
|
||||
disposables.add(
|
||||
docModeService.onPrimaryModeChange(
|
||||
() => this.requestUpdate(),
|
||||
this.host.doc.id
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { MindmapElementModel } from '@blocksuite/affine-block-surface';
|
||||
import {
|
||||
type AIItemGroupConfig,
|
||||
AIStarIconWithAnimation,
|
||||
BlocksUtils,
|
||||
MindmapElementModel,
|
||||
ShapeElementModel,
|
||||
TextElementModel,
|
||||
} from '@blocksuite/blocks';
|
||||
|
||||
@@ -40,7 +40,7 @@ export function setupSlashMenuAIEntry(slashMenu: AffineSlashMenuWidget) {
|
||||
|
||||
const chain = rootComponent.host.command.chain();
|
||||
const docModeService = rootComponent.std.get(DocModeProvider);
|
||||
const editorMode = docModeService.getMode(rootComponent.doc.id);
|
||||
const editorMode = docModeService.getPrimaryMode(rootComponent.doc.id);
|
||||
|
||||
return item?.showWhen?.(chain, editorMode, rootComponent.host) ?? true;
|
||||
};
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import type { MindmapStyle } from '@blocksuite/affine-block-surface';
|
||||
import type { EditorHost } from '@blocksuite/block-std';
|
||||
import type {
|
||||
AffineAIPanelWidgetConfig,
|
||||
MindmapStyle,
|
||||
} from '@blocksuite/blocks';
|
||||
import type { AffineAIPanelWidgetConfig } from '@blocksuite/blocks';
|
||||
import { markdownToMindmap, MiniMindmapPreview } from '@blocksuite/blocks';
|
||||
import { noop } from '@blocksuite/global/utils';
|
||||
import { html, nothing } from 'lit';
|
||||
|
||||
@@ -3,13 +3,14 @@ import './date-time';
|
||||
import '../_common/components/chat-action-list';
|
||||
import '../_common/components/copy-more';
|
||||
|
||||
import { CanvasElementType } from '@blocksuite/affine-block-surface';
|
||||
import { type EditorHost } from '@blocksuite/block-std';
|
||||
import {
|
||||
type AIError,
|
||||
CanvasElementType,
|
||||
ConnectorMode,
|
||||
DocModeProvider,
|
||||
type EdgelessRootService,
|
||||
TelemetryProvider,
|
||||
} from '@blocksuite/blocks';
|
||||
import {
|
||||
type AIChatBlockModel,
|
||||
@@ -138,7 +139,7 @@ export class AIChatBlockPeekView extends LitElement {
|
||||
*/
|
||||
createAIChatBlock = async () => {
|
||||
// Only create AI chat block in edgeless mode
|
||||
const mode = this._modeService.getMode();
|
||||
const mode = this._modeService.getEditorMode();
|
||||
if (mode !== 'edgeless') {
|
||||
return;
|
||||
}
|
||||
@@ -204,7 +205,8 @@ export class AIChatBlockPeekView extends LitElement {
|
||||
target: { id: aiChatBlockId },
|
||||
});
|
||||
|
||||
edgelessService.telemetryService?.track('CanvasElementAdded', {
|
||||
const telemetryService = this.host.std.getOptional(TelemetryProvider);
|
||||
telemetryService?.track('CanvasElementAdded', {
|
||||
control: 'conversation',
|
||||
page: 'whiteboard editor',
|
||||
module: 'canvas',
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { MindmapElementModel } from '@blocksuite/affine-block-surface';
|
||||
import type { BlockComponent, EditorHost } from '@blocksuite/block-std';
|
||||
import {
|
||||
AFFINE_EDGELESS_COPILOT_WIDGET,
|
||||
type EdgelessCopilotWidget,
|
||||
type EdgelessRootService,
|
||||
matchFlavours,
|
||||
MindmapElementModel,
|
||||
type ShapeElementModel,
|
||||
} from '@blocksuite/blocks';
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export async function frameToCanvas(
|
||||
) {
|
||||
const edgelessRoot = getEdgelessRootFromEditor(editor);
|
||||
const { notes, frames, shapes, images } = BlocksUtils.splitElements(
|
||||
edgelessRoot.service.frame.getElementsInFrame(frame, true)
|
||||
edgelessRoot.service.frame.getElementsInFrameBound(frame, true)
|
||||
);
|
||||
if (notes.length + frames.length + images.length + shapes.length === 0) {
|
||||
return;
|
||||
@@ -213,7 +213,10 @@ export const getFirstImageInFrame = (
|
||||
editor: EditorHost
|
||||
) => {
|
||||
const edgelessRoot = getEdgelessRootFromEditor(editor);
|
||||
const elements = edgelessRoot.service.frame.getElementsInFrame(frame, false);
|
||||
const elements = edgelessRoot.service.frame.getElementsInFrameBound(
|
||||
frame,
|
||||
false
|
||||
);
|
||||
const image = elements.find(ele => {
|
||||
if (!BlocksUtils.isCanvasElement(ele)) {
|
||||
return ele.flavour === 'affine:image';
|
||||
|
||||
Reference in New Issue
Block a user