Message Scroller

在新消息加入时跟随内容,同时允许读者离开并返回最新位置。

适用场景

  • 当界面需要以下行为时使用 Message Scroller:在新消息加入时跟随内容,同时允许读者离开并返回最新位置。

安装

选择安装方式,用法示例将同步更新导入路径。

$ bunx --bun shadcn-vue@2.8.2 add https://orvui.efu.me/r/message-scroller.json https://orvui.efu.me/r/message.json https://orvui.efu.me/r/prompt-input.json https://orvui.efu.me/r/streaming-response.json

首次使用时,将安装的 src/components/orvui/styles.css 导入项目样式入口。

示例

预览

What should the first release include?
Start with the smallest workflow that still feels complete.
Include streaming and recovery states too.
Yes. Those states make the first version feel dependable.
How should we present tool results?
Keep results close to the action that produced them.
What about actions that need confirmation?
Pause the run, explain the impact, and ask before continuing.
Can the transcript stay easy to navigate?
Use the rail to jump between turns without losing your place.

组合结构

使用公开部件 MessageScroller 组合 Message Scroller,并从该组件的公开入口导入。

MessageScroller
└── MessageGroup
    └── Message
        └── MessageContent

说明: Message 使用内容、附件、来源与操作部件组合会话条目。 Prompt Input 通过自适应高度文本框、附件与键盘操作编写并提交提示词。 Streaming Response 组合持续变化的助手回复,包括文字、附件、引用和操作。

工作方式

在新消息加入时跟随内容,同时允许读者离开并返回最新位置。

状态与事件

此示例组合没有声明成对的受控属性与 update 事件。使用已列出的属性、原生事件和插槽组合内容;不要为它添加未公开的 v-model。

API 参考

followOutput?
boolean
true
followThreshold?
number
56
smooth?
boolean
true
label?
string
"Conversation"
busy?
boolean
false
navigation?
"rail"
—
navigationLabel?
string
"Message navigation"
viewportClassName?
string
—
contentClassName?
string
—
railClassName?
string
—
viewportRef?
Ref<HTMLElement | null, HTMLElement | null> | (element: HTMLElement | null) => void
—
viewportProps?
HTMLAttributes
{}
contentProps?
HTMLAttributes
—

事件

followChange
[following: boolean]
@followChange

无障碍

为交互控件提供明确的无障碍名称。保留文档中的键盘路径、可见焦点与减少动态效果状态;自定义插槽应继续保留所替代部件的语义。

常见问题

如何配置 Message Scroller?
通过 followOutput、followThreshold、smooth、label、busy、navigation、navigationLabel、viewportClassName、contentClassName、railClassName、viewportRef、viewportProps、contentProps 配置 Message Scroller;API 表列出其类型与默认值。
如何连接到应用状态?
监听 followChange,将组件连接到应用状态。
可以在服务端渲染吗?
可以在 Vue SSR 应用中正常渲染。服务端与客户端的初始 props 应保持一致;浏览器测量与交互资源在挂载后启动。

更新于