简体中文
评论输入框:上方是可长到五行的输入(支持 typeahead 触发符,以及粘贴或拖入图片),下方是添加图片、表情和 Post。它是受控的:草稿由宿主持有,评论发出后再由宿主清空。空草稿不会发出。
这是 Meta Astryx 实验室 CommentComposer 的 Vue 移植,对齐 v0.7.13(含后续焦点行为:禁用控件仍留在 Tab 顺序里,忙碌编辑器的 Cancel 链接保持 Tab 落脚点)。表情按钮复用独立的 EmojiPicker。CommentThread、Comments 和 CommentPin 不在这一刀里。
CommentComposer
EmojiPicker
CommentThread
Comments
CommentPin
此组件在 @astryx-vue/lab 中,只通过 canary 标签发布。
@astryx-vue/lab
canary
import { CommentComposer, CommentComposerBase } from '@astryx-vue/lab'
CommentComposer 是独立表面。之后的讨论串会用 CommentComposerBase 做回复和编辑。
CommentComposerBase
value
modelValue
string
''
@change
v-model
placeholder
@astryx.commentComposer.placeholder
label
isSubmitting
boolean
false
<body>
error
anchor
CommentAnchor
highlightColor
CommentHighlightColor
'yellow'
onUploadImages
(files: readonly File[]) => CommentUploadedImage[] | Promise<...>
triggers
readonly ChatComposerTrigger[]
[]
@
agentCommands
readonly CommentAgentCommand[]
/
hasEmojiPicker
true
CommentAnchor 是 { quote: string; status?: 'anchored' \| 'orphaned' }。CommentUploadedImage 是 { url: string; alt: string }。CommentHighlightColor 是诸如 'yellow'、'green' 的调色板名。
{ quote: string; status?: 'anchored' \| 'orphaned' }
CommentUploadedImage
{ url: string; alt: string }
'green'
change
update:modelValue
value: string
submit
retry
anchor-dismiss
controls
composer
输入框最多长到五行。Enter 发出,Shift+Enter 换行。输入法正在组字时,Enter 仍留给输入法。点输入框里的空白会聚焦输入,点到它自己的控件或它打开的浮层则不会。
isSubmitting 不会给输入框、文件选择、Cancel 或 Post 加上原生 disabled。添加图片和表情使用 aria-disabled,仍可聚焦。编辑上下文里的 Cancel 仍留在 Tab 顺序中,直到发出结束才响应。忙碌时会拒绝粘贴或拖入的图片,以及第二次 Post。
disabled
aria-disabled
CommentComposer
评论输入框:上方是可长到五行的输入(支持 typeahead 触发符,以及粘贴或拖入图片),下方是添加图片、表情和 Post。它是受控的:草稿由宿主持有,评论发出后再由宿主清空。空草稿不会发出。
这是 Meta Astryx 实验室
CommentComposer的 Vue 移植,对齐 v0.7.13(含后续焦点行为:禁用控件仍留在 Tab 顺序里,忙碌编辑器的 Cancel 链接保持 Tab 落脚点)。表情按钮复用独立的EmojiPicker。CommentThread、Comments和CommentPin不在这一刀里。此组件在
@astryx-vue/lab中,只通过canary标签发布。导入
CommentComposer是独立表面。之后的讨论串会用CommentComposerBase做回复和编辑。Props
value/modelValuestring''value+@change或v-model绑定。placeholderstring@astryx.commentComposer.placeholderlabelstringisSubmittingbooleanfalse<body>。Post 仍可聚焦,但会拒绝第二次按下。errorstringanchorCommentAnchorhighlightColorCommentHighlightColor'yellow'onUploadImages(files: readonly File[]) => CommentUploadedImage[] | Promise<...>triggersreadonly ChatComposerTrigger[][]@搜索人员。agentCommandsreadonly CommentAgentCommand[][]/会列出它们。hasEmojiPickerbooleantrueCommentAnchor是{ quote: string; status?: 'anchored' \| 'orphaned' }。CommentUploadedImage是{ url: string; alt: string }。CommentHighlightColor是诸如'yellow'、'green'的调色板名。事件
change/update:modelValuevalue: stringsubmitvalue: stringretryanchor-dismiss插槽
controlscomposer键盘与忙碌行为
输入框最多长到五行。Enter 发出,Shift+Enter 换行。输入法正在组字时,Enter 仍留给输入法。点输入框里的空白会聚焦输入,点到它自己的控件或它打开的浮层则不会。
isSubmitting不会给输入框、文件选择、Cancel 或 Post 加上原生disabled。添加图片和表情使用aria-disabled,仍可聚焦。编辑上下文里的 Cancel 仍留在 Tab 顺序中,直到发出结束才响应。忙碌时会拒绝粘贴或拖入的图片,以及第二次 Post。