diff --git a/app/service/adapter/textToShot.ts b/app/service/adapter/textToShot.ts index 6315f72..6de8cf2 100644 --- a/app/service/adapter/textToShot.ts +++ b/app/service/adapter/textToShot.ts @@ -25,8 +25,16 @@ interface HighlightNode { attrs: HighlightAttributes; } +// 定义只读文本节点接口 +interface ReadonlyTextNode { + type: 'readonlyText'; + attrs: { + text: string; + }; +} + // 定义内容节点类型(文本或角色标记) -type ContentNode = TextNode | CharacterTokenNode | HighlightNode; +type ContentNode = TextNode | CharacterTokenNode | HighlightNode | ReadonlyTextNode; // 定义段落接口 interface Paragraph { @@ -217,6 +225,12 @@ export class TextToShotAdapter { attrs: { ...roleMatch }}, + { + type: 'readonlyText', + attrs: { + text: ':' + } + }, ...dialogNodes ] }; diff --git a/components/ai-suggestion-bar.tsx b/components/ai-suggestion-bar.tsx index 05418d5..24b5bcb 100644 --- a/components/ai-suggestion-bar.tsx +++ b/components/ai-suggestion-bar.tsx @@ -101,7 +101,7 @@ export function AISuggestionBar({ height: { type: "spring", stiffness: 300, damping: 30 }, opacity: { duration: 0.2 } }} - className="mb-4 pt-4 px-4 overflow-hidden bg-black/40 rounded-xl backdrop-blur-sm" + className="mb-2 pt-4 px-4 overflow-hidden bg-black/40 rounded-xl backdrop-blur-sm" > setIsFocused(false)} + onBlur={() => { + setIsFocused(false); + setShowSuggestions(!showSuggestions) + }} placeholder={isCollapsed ? "点击展开..." : placeholder} className="w-full resize-none bg-transparent border-none px-4 py-3 text-white placeholder:text-white/40 focus:outline-none min-h-[52px] max-h-[150px] pr-[100px]" @@ -189,7 +192,7 @@ export function AISuggestionBar({ /> {/* 操作按钮 */} -
+
(function ShotsEdito avatar: '' } }, - { type: 'text', text: ' says:' } + { type: 'readonlyText', attrs: { text: ':' } } ] };