diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-cards.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-cards.ts index 2326d5914..c2bf40559 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-cards.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-cards.ts @@ -309,6 +309,15 @@ export class ChatCards extends WithDisposable(LitElement) { }); break; } + case CardType.Block: { + this.updateContext({ + quote: card.text, + markdown: card.markdown, + images: card.images, + }); + break; + } + case CardType.Doc: { await this._handleDocSelection(card); this.updateContext({ @@ -336,11 +345,7 @@ export class ChatCards extends WithDisposable(LitElement) { text, markdown, }); - - return; - } - - if (!hasText && hasImages && images.length === 1) { + } else if (!hasText && hasImages && images.length === 1) { const [_, data] = this.host.command .chain() .tryAll(chain => [chain.getImageSelections()]) @@ -364,8 +369,16 @@ export class ChatCards extends WithDisposable(LitElement) { image: images[0], caption, }); - - return; + } else { + const markdown = + (await getSelectedTextContent(this.host, 'markdown')).trim() || ''; + this._updateCards({ + id: Date.now(), + type: CardType.Block, + text, + markdown, + images, + }); } } diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts index 0122c5215..2bc9be542 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts @@ -141,29 +141,34 @@ export class ChatPanelInput extends WithDisposable(LitElement) { } } - .chat-panel-images { - display: flex; - gap: 4px; - flex-wrap: wrap; - position: relative; + .chat-panel-images-wrapper { + overflow: hidden scroll; + max-height: 128px; - .image-container { - width: 58px; - height: 58px; - border-radius: 4px; - border: 1px solid var(--affine-border-color); - cursor: pointer; - overflow: hidden; - position: relative; + .chat-panel-images { display: flex; - justify-content: center; - align-items: center; + gap: 4px; + flex-wrap: wrap; + position: relative; - img { - max-width: 100%; - max-height: 100%; - width: auto; - height: auto; + .image-container { + width: 58px; + height: 58px; + border-radius: 4px; + border: 1px solid var(--affine-border-color); + cursor: pointer; + overflow: hidden; + position: relative; + display: flex; + justify-content: center; + align-items: center; + + img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + } } } } @@ -242,34 +247,37 @@ export class ChatPanelInput extends WithDisposable(LitElement) { private _renderImages(images: File[]) { return html`