Repository navigation
排队发送后,为什么不能编辑带图片的排队消息 #12594
Replies: 4 comments 1 reply
|
这是当前默认实现的有意限制,不是故障。 带图片的排队消息在队列里属于「混合内容(文字 + 附件)」条目。队列行的行内编辑器只处理纯文本,所以对非纯文本条目直接禁用了「编辑」(Edit);官方测试也明确断言了这一限制。纯文本的排队条目是可以在原地编辑的,保存时沿用原队列 item ID。 源码/测试依据(固定在
原因:原地改字要同时保住原 content block 的顺序、附件的 durable ID 和非文本块,而当前行内编辑的 schema/handler 只覆盖纯文本;直接放开会让附件结构错位,所以先禁用了。 现在能做的:把这条排队项删除后在输入框重新编辑(图片需重新添加);或用 steer 追加指令;缩略图、删除、steer 对混合条目仍然可用。(默认 QueueDock 目前没有「把整条排队消息取回主草稿再改」的入口,那是另一个需求方向。) 这里说的「排队后改字」,其实更适合作为 Ideas 提一条需求——举个现成例子:我自己就在同一块区域提过一条 #12519(关于提交等待 Host 接纳期间如何交接输入框,正文里也连带讨论了 #3501「带图片消息挂起后输入框只读」),你可以参考它的写法,单独提一条针对「带图片的排队消息原地改字」的需求。 以上按 master |
|
感谢解释。想确认两点后续方向:
补充:桌面端 0.2.2-rc.1(macOS)也是同样表现——带图片的排队消息只能删除、不能编辑;纯文本行可以原地编辑。和 web 一致。 |
|
同问,依旧等官方等得好苦 |
|
补一条这条帖没覆盖到的点:「为什么不能编辑」的解释本身,用户永远看不到。 上面 takomitkm 的结论我复核后同意——混合内容禁用编辑是有意限制,不是故障。但沿着同一条代码往下读,会发现解释被放在了一个到不了的地方,而且代码注释里给出的理由经实测不成立。 现状master
文案本身在 locales.ts L388 八种语言都写好了,实际等于死代码。 注释里的前提,实测不成立「Disabled buttons fire no hover events」这条判断,在当前的 Chrome 上不成立。我在 macOS + Chrome 157 实测:
也就是说:按钮禁用并不阻断悬停事件,Tooltip 本身完全能在禁用按钮上工作。唯一让它不出现的,就是 这也解释了为什么这个缺陷能长期存在——写出注释的人相信了一个常见但过时的说法(在 现有测试为什么没拦住
expect(buttons[1]?.getAttribute('title')).toBe('包含非文本内容,暂不支持编辑')只断言属性存在,不断言用户能到达它。所以这个 UX 缺陷可以带着全绿测试长期存在。 用户侧表现带图片的排队消息上,编辑图标变灰、点击无反应、悬停无任何解释——用户无法区分「这条不能编辑」「按钮坏了」「还在发送中」三种状态。我在 0.2.2-rc.2 的 web 端复现,与 #12594 描述一致。 建议的修复修复不需要包一层 <Tooltip
portal
label={text === null ? t('queue.edit.unsupported') : t('queue.edit')}
side="bottom"
delayMs={500}
>
<button
type="button"
className={css.action}
aria-label={t('queue.edit')}
disabled={busy !== null || text === null}
onClick={() => { if (text !== null) setEditing({ id: row.id, text }) }}
>即:去掉 配套把 spec 的断言从「有 title 属性」改成「悬停可见解释文案」,否则同样的回归还会再出现。 与相邻需求的关系真正的能力缺口(只改文字、保留附件)已经在 #11236 的评论里提过方案,我不在这里重复。本条只针对可发现性:即使短期不支持编辑,也应该让用户知道为什么。 补充一句边界:我只在 macOS Chrome 上做了上述实测,没有验证 Safari 和 Firefox。如果确实存在「某些浏览器不给禁用控件派发鼠标事件」的情况,那 |
Uh oh!
There was an error while loading. Please reload this page.
如上
All reactions