From 49529b7e63add5052348d635d5eae81a15fc36c1 Mon Sep 17 00:00:00 2001 From: darkskygit Date: Wed, 31 Jul 2024 09:24:53 +0000 Subject: [PATCH] fix: make chat button click event work fine (#7658) fix PD-1504 --- .../presets/ai/chat-panel/chat-panel-input.ts | 23 ++++++++++++------ .../blocksuite/presets/ai/chat-panel/index.ts | 1 + .../presets/ai/peek-view/chat-block-input.ts | 24 ++++++++++++++----- .../blocksuite/presets/ai/peek-view/styles.ts | 1 + .../src/components/pure/ai-island/index.tsx | 4 +++- .../components/pure/ai-island/styles.css.ts | 8 +++++++ .../core/src/components/workspace/index.tsx | 10 ++++---- 7 files changed, 51 insertions(+), 20 deletions(-) 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 640426eddf..abdbb748f8 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 @@ -168,6 +168,16 @@ export class ChatPanelInput extends WithDisposable(LitElement) { } } + .chat-panel-send svg rect { + fill: var(--affine-primary-color); + } + .chat-panel-send[aria-disabled='true'] { + cursor: not-allowed; + } + .chat-panel-send[aria-disabled='true'] svg rect { + fill: var(--affine-text-disable-color); + } + .close-wrapper { width: 16px; height: 16px; @@ -286,18 +296,13 @@ export class ChatPanelInput extends WithDisposable(LitElement) { const maxHeight = hasImages ? 272 + 2 : 200 + 2; return html`
@@ -395,7 +400,11 @@ export class ChatPanelInput extends WithDisposable(LitElement) { > ${ChatAbortIcon}
` - : html`
+ : html`
${ChatSendIcon}
`}
diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts index b18bf39325..25e6caa9d3 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts @@ -91,6 +91,7 @@ export class ChatPanel extends WithDisposable(ShadowlessElement) { align-items: center; color: var(--affine-text-secondary-color); font-size: 12px; + user-select: none; } `; diff --git a/packages/frontend/core/src/blocksuite/presets/ai/peek-view/chat-block-input.ts b/packages/frontend/core/src/blocksuite/presets/ai/peek-view/chat-block-input.ts index f77efc9069..d7c9d58069 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/peek-view/chat-block-input.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/peek-view/chat-block-input.ts @@ -56,6 +56,7 @@ export class ChatBlockInput extends LitElement { resize: none; overflow-y: hidden; background-color: transparent; + user-select: none; } textarea::placeholder { font-size: 14px; @@ -91,6 +92,17 @@ export class ChatBlockInput extends LitElement { } } } + + .chat-panel-send svg rect { + fill: var(--affine-primary-color); + } + .chat-panel-send[aria-disabled='true'] { + cursor: not-allowed; + } + .chat-panel-send[aria-disabled='true'] svg rect { + fill: var(--affine-text-disable-color); + } + .close-wrapper { width: 16px; height: 16px; @@ -143,17 +155,13 @@ export class ChatBlockInput extends LitElement { }); return html`
@@ -233,7 +241,11 @@ export class ChatBlockInput extends LitElement { > ${ChatAbortIcon}
` - : html`
+ : html`
${ChatSendIcon}
`}
diff --git a/packages/frontend/core/src/blocksuite/presets/ai/peek-view/styles.ts b/packages/frontend/core/src/blocksuite/presets/ai/peek-view/styles.ts index 7de306f0bd..b47e51e0bb 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/peek-view/styles.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/peek-view/styles.ts @@ -69,5 +69,6 @@ export const PeekViewStyles = css` align-items: center; color: var(--affine-text-secondary-color); font-size: var(--affine-font-xs); + user-select: none; } `; diff --git a/packages/frontend/core/src/components/pure/ai-island/index.tsx b/packages/frontend/core/src/components/pure/ai-island/index.tsx index bd5092e859..f4859c6347 100644 --- a/packages/frontend/core/src/components/pure/ai-island/index.tsx +++ b/packages/frontend/core/src/components/pure/ai-island/index.tsx @@ -5,6 +5,7 @@ import { useLiveData, useService, } from '@toeverything/infra'; +import clsx from 'clsx'; import { useEffect, useState } from 'react'; import { ToolContainer } from '../../workspace'; @@ -14,6 +15,7 @@ import { aiIslandBtn, aiIslandWrapper, gradient, + toolStyle, } from './styles.css'; const RIGHT_SIDEBAR_AI_HAS_EVER_OPENED_KEY = @@ -49,7 +51,7 @@ export const AIIsland = () => { }, [activeTab, haveChatTab, sidebarOpen]); return ( - +
{ +export const ToolContainer = ( + props: PropsWithChildren<{ className?: string }> +): ReactElement => { const docId = useLiveData( useService(GlobalContextService).globalContext.docId.$ ); @@ -79,11 +81,7 @@ export const ToolContainer = (props: PropsWithChildren): ReactElement => { const doc = useLiveData(docId ? docRecordList.doc$(docId) : undefined); const inTrash = useLiveData(doc?.meta$)?.trash; return ( -
+
{props.children}
);