mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-15 05:37:32 +00:00
fix: ai chat block added later should be with higher index (#7660)
[BS-1000](https://linear.app/affine-design/issue/BS-1000/更好地处理新增内容的层级)
This commit is contained in:
@@ -131,7 +131,7 @@ function getViewportCenter(
|
||||
|
||||
// Add AI chat block and focus on it
|
||||
function addAIChatBlock(
|
||||
doc: Doc,
|
||||
host: EditorHost,
|
||||
messages: ChatMessage[],
|
||||
sessionId: string,
|
||||
viewportCenter: { x: number; y: number }
|
||||
@@ -140,6 +140,7 @@ function addAIChatBlock(
|
||||
return;
|
||||
}
|
||||
|
||||
const { doc } = host;
|
||||
const surfaceBlock = doc
|
||||
.getBlocks()
|
||||
.find(block => block.flavour === 'affine:surface');
|
||||
@@ -147,6 +148,8 @@ function addAIChatBlock(
|
||||
return;
|
||||
}
|
||||
|
||||
const surfaceService = host.spec.getService('affine:surface');
|
||||
const { layer } = surfaceService;
|
||||
// Add AI chat block to the center of the viewport
|
||||
const width = 300; // AI_CHAT_BLOCK_WIDTH = 300
|
||||
const height = 320; // AI_CHAT_BLOCK_HEIGHT = 320
|
||||
@@ -158,6 +161,7 @@ function addAIChatBlock(
|
||||
{
|
||||
xywh: bound.serialize(),
|
||||
messages: JSON.stringify(messages),
|
||||
index: layer.generateIndex('affine:embed-ai-chat'),
|
||||
sessionId,
|
||||
},
|
||||
surfaceBlock.id
|
||||
@@ -329,7 +333,7 @@ const SAVE_CHAT_TO_BLOCK_ACTION: ChatAction = {
|
||||
|
||||
// After switching to edgeless mode, the user can save the chat to a block
|
||||
const blockId = addAIChatBlock(
|
||||
host.doc,
|
||||
host,
|
||||
messages,
|
||||
newSessionId,
|
||||
viewportCenter
|
||||
|
||||
@@ -180,7 +180,8 @@ export class AIChatBlockPeekView extends LitElement {
|
||||
return;
|
||||
}
|
||||
|
||||
const aiChatBlockId = doc.addBlock(
|
||||
const edgelessService = this._rootService as EdgelessRootService;
|
||||
const aiChatBlockId = edgelessService.addBlock(
|
||||
'affine:embed-ai-chat' as keyof BlockSuite.BlockModels,
|
||||
{
|
||||
xywh: bound.serialize(),
|
||||
@@ -197,7 +198,6 @@ export class AIChatBlockPeekView extends LitElement {
|
||||
this.updateContext({ currentChatBlockId: aiChatBlockId });
|
||||
|
||||
// Connect the parent chat block to the AI chat block
|
||||
const edgelessService = this._rootService as EdgelessRootService;
|
||||
edgelessService.addElement(CanvasElementType.CONNECTOR, {
|
||||
mode: ConnectorMode.Curve,
|
||||
controllers: [],
|
||||
|
||||
Reference in New Issue
Block a user