简体中文
单独呈现的一个评论线程:首条评论、一级回复、表情回应、编辑历史,以及回复输入框。适用于文档旁的边注、高亮下方的弹出层,或任何只显示单个线程的界面。
这是 Meta Astryx 实验室 CommentThread 的 Vue 移植,对齐 v0.7.13。回复和编辑复用 CommentComposerBase,其中的表情按钮复用独立的 EmojiPicker。Comments 和 CommentPin 还不在这一刀里。
CommentThread
CommentComposerBase
EmojiPicker
Comments
CommentPin
此组件在 @astryx-vue/lab 中发布,只通过 canary 标签发布。
@astryx-vue/lab
canary
import { CommentThread, DEFAULT_COMMENT_REACTIONS } from '@astryx-vue/lab'
comment
CommentThreadData
typingUsers
isSelected
boolean
currentUser
CommentUser
mode
'interactive' | 'non-editable' | 'read-only'
'interactive'
container
'section' | 'card'
'section'
onSubmit
(content: string, parentCommentId?: string) => void | Promise<void>
onSaveEdit
onDelete
onReact
onResolveThread
onReopenThread
onRetryComment
(commentId: string) => void | Promise<void>
status
error
loadVersions
(commentId: string) => Promise<readonly CommentVersion[]>
onUploadImages
CommentImageUploader
onComposerDraftChange
(value: string, context: CommentComposerContext) => void
isSubmitting
false
composerPlaceholder
string
highlightColor
CommentHighlightColor
'yellow'
reactionOptions
readonly CommentReactionOption[]
DEFAULT_COMMENT_REACTIONS
agentCommands
composerTriggers
hasEmojiPicker
true
onDismiss
() => void
@dismiss
hasLightDismiss={false}
hasEscapeDismiss={false}
CommentThreadData 在 CommentData 之上增加 replies、anchor、isResolved、resolvedBy、typingUsers、isHighlighted 和 canResolve。
CommentData
replies
anchor
isResolved
resolvedBy
isHighlighted
canResolve
selected-change
isSelected: boolean
dismiss
body
versionBody
additionalActions
composer
render*
点击表面会展开线程;指针点击还会打开回复输入框。键盘激活会把焦点留在隐藏的线程切换按钮上,以便用同一个键再关闭。传入 onDismiss 后,只有当线程内没有打开的图层时,Escape 才会关闭线程。未保存的回复或编辑会把第一次关闭改成抖动、移回焦点和礼貌播报;紧接着的下一次才会关闭。在 prefers-reduced-motion: reduce 下不会抖动,焦点和播报仍然保留。
prefers-reduced-motion: reduce
CommentThread
单独呈现的一个评论线程:首条评论、一级回复、表情回应、编辑历史,以及回复输入框。适用于文档旁的边注、高亮下方的弹出层,或任何只显示单个线程的界面。
这是 Meta Astryx 实验室
CommentThread的 Vue 移植,对齐 v0.7.13。回复和编辑复用CommentComposerBase,其中的表情按钮复用独立的EmojiPicker。Comments和CommentPin还不在这一刀里。此组件在
@astryx-vue/lab中发布,只通过canary标签发布。导入
Props
commentCommentThreadDatatypingUsers。isSelectedbooleancurrentUserCommentUsermode'interactive' | 'non-editable' | 'read-only''interactive'container'section' | 'card''section'onSubmit(content: string, parentCommentId?: string) => void | Promise<void>onSaveEdit/onDelete/onReactonResolveThread/onReopenThreadonRetryComment(commentId: string) => void | Promise<void>status为error的评论重试。loadVersions(commentId: string) => Promise<readonly CommentVersion[]>onUploadImagesCommentImageUploaderonComposerDraftChange(value: string, context: CommentComposerContext) => voidisSubmittingbooleanfalsecomposerPlaceholderstringhighlightColorCommentHighlightColor'yellow'reactionOptionsreadonly CommentReactionOption[]DEFAULT_COMMENT_REACTIONSagentCommands/composerTriggershasEmojiPickerbooleantrueonDismiss() => void@dismiss。请在宿主 Popover 上同时设置hasLightDismiss={false}和hasEscapeDismiss={false}。CommentThreadData在CommentData之上增加replies、anchor、isResolved、resolvedBy、typingUsers、isHighlighted和canResolve。事件
selected-changeisSelected: booleandismiss插槽
anchor/body/versionBody/additionalActions/composerrender*回调角色相同:替换引用、正文、历史版本、标题栏操作或输入区域。render*属性仍然可用。键盘与关闭
点击表面会展开线程;指针点击还会打开回复输入框。键盘激活会把焦点留在隐藏的线程切换按钮上,以便用同一个键再关闭。传入
onDismiss后,只有当线程内没有打开的图层时,Escape 才会关闭线程。未保存的回复或编辑会把第一次关闭改成抖动、移回焦点和礼貌播报;紧接着的下一次才会关闭。在prefers-reduced-motion: reduce下不会抖动,焦点和播报仍然保留。