import { Chatkit, useChatRuntime } from '@volcengine/chatkit';
import { createMockAdapter } from '@volcengine/chatkit/adapters/mock';
import '@volcengine/chatkit/styles.css';
import { useState } from 'react';
const adapter = createMockAdapter();
// 划词追问一直有,不需要配置:在回答里选中一段文字,点浮条上的「追问」,文字作为引用进输入框。
// message.selection 里的内容显示在同一个浮条上,函数写法拿到选中的文字。
export default function SelectionAsk() {
// 打开 Mock 预置的一个会话,里面已经有回答可以选
const runtime = useChatRuntime({ sessionId: 'mock-session-debug', adapter });
const [notes, setNotes] = useState<string[]>([]);
if (!runtime) return null;
return (
<div className="demo-row">
<div className="demo-main">
<Chatkit
runtime={runtime}
settings={{ placeholder: '在回答里选中一段文字试试' }}
slots={{
'message.selection': ({ text, clear }) => (
<button
type="button"
className="demo-chip"
onClick={() => {
setNotes(current => [...current, text]);
clear();
}}
>
记到笔记
</button>
),
}}
/>
</div>
<aside className="demo-side">
<h4>笔记</h4>
{notes.length === 0 ? <p className="demo-muted">选中文字后点「记到笔记」</p> : null}
{notes.map((note, index) => (
<pre key={index}>{note}</pre>
))}
</aside>
</div>
);
}