@box/threaded-annotations 4.11.1 → 4.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{THREADED_ANNOTATIONS_PORTAL}from"../esm/lib/v2/constants.js";import{MessageEditor}from"../esm/lib/components/v2/message-editor/message-editor.js";import{ThreadViewState,ThreadedAnnotationsProvider,useThreadedAnnotationsContext}from"../esm/lib/v2/threaded-annotations-context.js";import{t as MessagesView}from"./messages-view.js";import{buildMentionContent}from"../esm/lib/v2/utils/build-mention-content.js";import{mergeMentionIntoDraft}from"../esm/lib/v2/utils/merge-mention-into-draft.js";import clsx from"clsx";import{useCallback,useEffect,useMemo,useRef}from"react";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/threaded-annotations2.css';var threaded_annotations_module_default={threadedAnnotations:`_threadedAnnotations_x0zhn_1`,expandable:`_expandable_x0zhn_13`,annotations:`_annotations_x0zhn_21`,highlighted:`_highlighted_x0zhn_21`},ThreadedAnnotationsContent=({messages:messageList,isResolved=!1,resolvedBy,resolvedAt,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,onPost,onPostError,isRichTextEnabled=!1,onFormatToggle,userSelectorProps,onEditorOpenChange,annotationTarget,onAnnotationBadgeClick,originalContentDeleted,isHighlighted=!1,autoFocusReplyEditor=!0})=>{let{viewState,dispatch,editingMessageId,replyMention,isReplyDisabled,isAnnotations}=useThreadedAnnotationsContext(),containerRef=useRef(null),replyDraftRef=useRef(null),isExpanded=viewState!==ThreadViewState.Collapsed,hasHiddenReplies=messageList.length>2,isExpandable=viewState===ThreadViewState.Collapsed&&(hasHiddenReplies||!isReplyDisabled&&!isResolved);useEffect(()=>{editingMessageId&&!messageList.some(message=>message.id===editingMessageId)&&dispatch({type:`CLEAR_EDIT`})},[editingMessageId,messageList,dispatch]),useEffect(()=>{onEditorOpenChange?.(isExpanded)},[isExpanded,onEditorOpenChange]),useEffect(()=>{if(!isExpanded)return;let portalSelector=`[${Object.keys(THREADED_ANNOTATIONS_PORTAL)[0]}]`,handleClickOutside=e=>{let target=e.target;containerRef.current?.contains(target)||document.querySelector(portalSelector)?.contains(target)||dispatch({type:`COLLAPSE`})};return document.addEventListener(`mousedown`,handleClickOutside),()=>document.removeEventListener(`mousedown`,handleClickOutside)},[isExpanded,dispatch]);let hasNoMessages=messageList.length===0,handleClearMention=useCallback(()=>dispatch({type:`CLEAR_MENTION`}),[dispatch]),handleReplyChange=useCallback(content=>{replyDraftRef.current=content},[]),handlePostSuccess=useCallback(()=>{replyDraftRef.current=null,handleClearMention()},[handleClearMention]),initialReplyContent=useMemo(()=>replyMention?mergeMentionIntoDraft(buildMentionContent(replyMention),replyDraftRef.current):null,[replyMention]),handleClick=useCallback(e=>{if(!isExpandable)return;let target=e.target;!e.currentTarget.contains(target)||target.closest(`[data-no-expand]`)||dispatch({type:`EXPAND`})},[isExpandable,dispatch]);return isAnnotations&&hasNoMessages?jsx(MessageEditor,{isFirstAnnotation:!0,isRichTextEnabled,maxCharacterCount,onFormatToggle,onPost,onPostError,onPostSuccess:handleClearMention,userSelectorProps}):jsxs(`div`,{ref:containerRef,className:clsx(threaded_annotations_module_default.threadedAnnotations,isExpandable&&threaded_annotations_module_default.expandable,isAnnotations&&threaded_annotations_module_default.annotations,isHighlighted&&threaded_annotations_module_default.highlighted),"data-thread-expandable":isExpandable?!0:void 0,"data-thread-highlighted":isHighlighted?!0:void 0,onClick:isExpandable?handleClick:void 0,children:[jsx(MessagesView,{messages:messageList,isResolved,resolvedBy,resolvedAt,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,isRichTextEnabled,onFormatToggle,userSelectorProps,annotationTarget,onAnnotationBadgeClick,originalContentDeleted}),viewState===ThreadViewState.Composing&&jsx(MessageEditor,{autoFocus:autoFocusReplyEditor,initialContent:initialReplyContent,isRichTextEnabled,maxCharacterCount,onChange:handleReplyChange,onFormatToggle,onPost,onPostError,onPostSuccess:handlePostSuccess,isReply:!0,userSelectorProps})]})},ThreadedAnnotations=props=>jsx(ThreadedAnnotationsProvider,{defaultExpanded:props.defaultExpanded||props.messages.length===0,isReplyDisabled:props.isReplyDisabled||props.isResolved,isEditDisabled:props.isEditDisabled||props.isResolved,isAnnotations:props.isAnnotations,collapsed:props.collapsed,children:jsx(ThreadedAnnotationsContent,{...props})});export{ThreadedAnnotations as t};
1
+ import{THREADED_ANNOTATIONS_PORTAL}from"../esm/lib/v2/constants.js";import{MessageEditor}from"../esm/lib/components/v2/message-editor/message-editor.js";import{ThreadViewState,ThreadedAnnotationsProvider,useThreadedAnnotationsContext}from"../esm/lib/v2/threaded-annotations-context.js";import{t as MessagesView}from"./messages-view.js";import{buildMentionContent}from"../esm/lib/v2/utils/build-mention-content.js";import{mergeMentionIntoDraft}from"../esm/lib/v2/utils/merge-mention-into-draft.js";import clsx from"clsx";import{useCallback,useEffect,useMemo,useRef}from"react";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/threaded-annotations2.css';var threaded_annotations_module_default={threadedAnnotations:`_threadedAnnotations_x0zhn_1`,expandable:`_expandable_x0zhn_13`,annotations:`_annotations_x0zhn_21`,highlighted:`_highlighted_x0zhn_21`},ThreadedAnnotationsContent=({messages:messageList,isResolved=!1,resolvedBy,resolvedAt,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,onPost,onPostError,isRichTextEnabled=!1,onFormatToggle,userSelectorProps,onEditorOpenChange,annotationTarget,onAnnotationBadgeClick,originalContentDeleted,isHighlighted=!1,autoFocusReplyEditor=!0})=>{let{viewState,dispatch,editingMessageId,replyMention,isReplyDisabled,isAnnotations}=useThreadedAnnotationsContext(),containerRef=useRef(null),replyDraftRef=useRef(null),isExpanded=viewState!==ThreadViewState.Collapsed,hasHiddenReplies=messageList.length>2,isExpandable=viewState===ThreadViewState.Collapsed&&(hasHiddenReplies||!isReplyDisabled&&!isResolved);useEffect(()=>{editingMessageId&&!messageList.some(message=>message.id===editingMessageId)&&dispatch({type:`CLEAR_EDIT`})},[editingMessageId,messageList,dispatch]),useEffect(()=>{onEditorOpenChange?.(isExpanded)},[isExpanded,onEditorOpenChange]),useEffect(()=>{if(!isExpanded)return;let portalSelector=`[${Object.keys(THREADED_ANNOTATIONS_PORTAL)[0]}]`,handleClickOutside=e=>{let target=e.target;containerRef.current?.contains(target)||document.querySelector(portalSelector)?.contains(target)||editingMessageId!==null||replyDraftRef.current!==null||dispatch({type:`COLLAPSE`})};return document.addEventListener(`mousedown`,handleClickOutside),()=>document.removeEventListener(`mousedown`,handleClickOutside)},[isExpanded,editingMessageId,dispatch]);let hasNoMessages=messageList.length===0,handleClearMention=useCallback(()=>dispatch({type:`CLEAR_MENTION`}),[dispatch]),handleReplyChange=useCallback(content=>{replyDraftRef.current=content},[]),handlePostSuccess=useCallback(()=>{replyDraftRef.current=null,handleClearMention()},[handleClearMention]),initialReplyContent=useMemo(()=>replyMention?mergeMentionIntoDraft(buildMentionContent(replyMention),replyDraftRef.current):null,[replyMention]),handleClick=useCallback(e=>{if(!isExpandable)return;let target=e.target;!e.currentTarget.contains(target)||target.closest(`[data-no-expand]`)||dispatch({type:`EXPAND`})},[isExpandable,dispatch]);return isAnnotations&&hasNoMessages?jsx(MessageEditor,{isFirstAnnotation:!0,isRichTextEnabled,maxCharacterCount,onFormatToggle,onPost,onPostError,onPostSuccess:handleClearMention,userSelectorProps}):jsxs(`div`,{ref:containerRef,className:clsx(threaded_annotations_module_default.threadedAnnotations,isExpandable&&threaded_annotations_module_default.expandable,isAnnotations&&threaded_annotations_module_default.annotations,isHighlighted&&threaded_annotations_module_default.highlighted),"data-thread-expandable":isExpandable?!0:void 0,"data-thread-highlighted":isHighlighted?!0:void 0,onClick:isExpandable?handleClick:void 0,children:[jsx(MessagesView,{messages:messageList,isResolved,resolvedBy,resolvedAt,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,isRichTextEnabled,onFormatToggle,userSelectorProps,annotationTarget,onAnnotationBadgeClick,originalContentDeleted}),viewState===ThreadViewState.Composing&&jsx(MessageEditor,{autoFocus:autoFocusReplyEditor,initialContent:initialReplyContent,isRichTextEnabled,maxCharacterCount,onChange:handleReplyChange,onFormatToggle,onPost,onPostError,onPostSuccess:handlePostSuccess,isReply:!0,userSelectorProps})]})},ThreadedAnnotations=props=>jsx(ThreadedAnnotationsProvider,{defaultExpanded:props.defaultExpanded||props.messages.length===0,isReplyDisabled:props.isReplyDisabled||props.isResolved,isEditDisabled:props.isEditDisabled||props.isResolved,isAnnotations:props.isAnnotations,collapsed:props.collapsed,children:jsx(ThreadedAnnotationsContent,{...props})});export{ThreadedAnnotations as t};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/threaded-annotations",
3
- "version": "4.11.1",
3
+ "version": "4.11.3",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "dependencies": {
6
6
  "@floating-ui/dom": "^1.6.0",
@@ -22,23 +22,23 @@
22
22
  "uuid": "^9.0.1"
23
23
  },
24
24
  "peerDependencies": {
25
- "@box/blueprint-web": "^17.8.2",
26
- "@box/blueprint-web-assets": "^5.10.3",
27
- "@box/collaboration-popover": "^2.2.47",
28
- "@box/readable-time": "^2.2.47",
29
- "@box/user-selector": "^3.0.26",
25
+ "@box/blueprint-web": "^17.9.0",
26
+ "@box/blueprint-web-assets": "^5.10.4",
27
+ "@box/collaboration-popover": "^2.2.48",
28
+ "@box/readable-time": "^2.2.48",
29
+ "@box/user-selector": "^3.0.27",
30
30
  "clsx": "^1.2.1",
31
31
  "react": "^18.0.0",
32
32
  "react-dom": "^18.0.0",
33
33
  "react-intl": "^6.4.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@box/blueprint-web": "^17.8.2",
37
- "@box/blueprint-web-assets": "^5.10.3",
36
+ "@box/blueprint-web": "^17.9.0",
37
+ "@box/blueprint-web-assets": "^5.10.4",
38
38
  "@box/eslint-plugin-blueprint": "2.2.16",
39
- "@box/readable-time": "^2.2.47",
40
- "@box/storybook-utils": "^1.2.47",
41
- "@box/user-selector": "^3.0.26",
39
+ "@box/readable-time": "^2.2.48",
40
+ "@box/storybook-utils": "^1.2.48",
41
+ "@box/user-selector": "^3.0.27",
42
42
  "@types/markdown-it": "^14.1.2",
43
43
  "react": "^18.0.0",
44
44
  "react-dom": "^18.0.0"