@box/threaded-annotations 4.1.9 → 4.1.10

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.
Files changed (104) hide show
  1. package/dist/chunks/annotation-badge.js +1 -64
  2. package/dist/chunks/custom-placeholder.js +1 -72
  3. package/dist/chunks/delete-annotations-message-popover.js +1 -46
  4. package/dist/chunks/delete-confirmation-popover.js +1 -67
  5. package/dist/chunks/dist.js +2 -1757
  6. package/dist/chunks/mention-component.js +1 -106
  7. package/dist/chunks/message-editor.module.js +1 -12
  8. package/dist/chunks/message-editor2.module.js +1 -29
  9. package/dist/chunks/message-header.js +1 -49
  10. package/dist/chunks/messages-view.js +1 -99
  11. package/dist/chunks/resolved-state.js +1 -55
  12. package/dist/chunks/show-replies-button.js +1 -60
  13. package/dist/chunks/text-message.js +1 -21
  14. package/dist/chunks/text-message.module.js +1 -14
  15. package/dist/chunks/threaded-annotations.js +1 -71
  16. package/dist/chunks/threaded-annotations2.js +1 -87
  17. package/dist/chunks/timestamp-toggle.js +1 -36
  18. package/dist/chunks/virtualized-messages.js +1 -30
  19. package/dist/esm/index.js +1 -8
  20. package/dist/esm/lib/components/mention-component/mention-component.js +1 -2
  21. package/dist/esm/lib/components/mention-component/mention-context.js +1 -26
  22. package/dist/esm/lib/components/message-editor/editor-extensions/custom-mention/custom-mention-suggestions.js +1 -23
  23. package/dist/esm/lib/components/message-editor/editor-extensions/custom-mention/custom-mention.js +1 -59
  24. package/dist/esm/lib/components/message-editor/editor-extensions/custom-mention/useMentionState.js +1 -24
  25. package/dist/esm/lib/components/message-editor/editor-extensions/custom-paragraph.js +1 -13
  26. package/dist/esm/lib/components/message-editor/editor-extensions/custom-placeholder/custom-placeholder-utils.js +1 -26
  27. package/dist/esm/lib/components/message-editor/editor-extensions/custom-placeholder/custom-placeholder.js +1 -2
  28. package/dist/esm/lib/components/message-editor/error-message.js +1 -17
  29. package/dist/esm/lib/components/message-editor/hooks/useMessageEditor.js +1 -69
  30. package/dist/esm/lib/components/message-editor/hooks/useMessagePost.js +1 -35
  31. package/dist/esm/lib/components/message-editor/message-editor-actions.js +1 -29
  32. package/dist/esm/lib/components/message-editor/message-editor-context.js +1 -7
  33. package/dist/esm/lib/components/message-editor/message-editor.js +1 -74
  34. package/dist/esm/lib/components/message-editor/messages.js +1 -44
  35. package/dist/esm/lib/components/message-editor/utils/getMessageEditorState.js +1 -9
  36. package/dist/esm/lib/components/message-header/delete-annotations-message-popover.js +1 -2
  37. package/dist/esm/lib/components/message-header/message-header.js +1 -2
  38. package/dist/esm/lib/components/message-header/messages.js +1 -32
  39. package/dist/esm/lib/components/messages-view/consts.js +1 -2
  40. package/dist/esm/lib/components/messages-view/hooks/useAutoScroll.js +1 -43
  41. package/dist/esm/lib/components/messages-view/hooks/useShowMoreReplies.js +1 -26
  42. package/dist/esm/lib/components/messages-view/hooks/useVirtualizedMessages.js +1 -17
  43. package/dist/esm/lib/components/messages-view/messages-view.js +1 -61
  44. package/dist/esm/lib/components/messages-view/messages.js +1 -12
  45. package/dist/esm/lib/components/messages-view/virtualized-messages.js +1 -2
  46. package/dist/esm/lib/components/text-message/message-renderer.js +1 -58
  47. package/dist/esm/lib/components/text-message/text-message.js +1 -2
  48. package/dist/esm/lib/components/user-avatar/getInitials.js +1 -5
  49. package/dist/esm/lib/components/user-avatar/messages.js +1 -12
  50. package/dist/esm/lib/components/user-avatar/user-avatar.js +1 -31
  51. package/dist/esm/lib/components/v2/annotation-badge/annotation-badge.js +1 -2
  52. package/dist/esm/lib/components/v2/annotation-badge/index.js +1 -2
  53. package/dist/esm/lib/components/v2/annotation-badge/messages.js +1 -12
  54. package/dist/esm/lib/components/v2/message-editor/editor-extensions/custom-mention/custom-mention-suggestions.js +1 -23
  55. package/dist/esm/lib/components/v2/message-editor/editor-extensions/custom-mention/custom-mention.js +1 -59
  56. package/dist/esm/lib/components/v2/message-editor/editor-extensions/custom-mention/mention-trigger-normalization.js +1 -2
  57. package/dist/esm/lib/components/v2/message-editor/editor-extensions/custom-mention/useMentionState.js +1 -27
  58. package/dist/esm/lib/components/v2/message-editor/editor-extensions/custom-paragraph.js +1 -13
  59. package/dist/esm/lib/components/v2/message-editor/hooks/useCharacterLimit.js +1 -24
  60. package/dist/esm/lib/components/v2/message-editor/hooks/useEditorContainerState.js +1 -21
  61. package/dist/esm/lib/components/v2/message-editor/hooks/useMentionUserSelection.js +1 -21
  62. package/dist/esm/lib/components/v2/message-editor/hooks/useMessageSubmit.js +1 -24
  63. package/dist/esm/lib/components/v2/message-editor/message-editor-context.js +1 -19
  64. package/dist/esm/lib/components/v2/message-editor/message-editor.js +1 -187
  65. package/dist/esm/lib/components/v2/message-editor/message-editor.types.js +1 -4
  66. package/dist/esm/lib/components/v2/message-editor/messages.js +1 -52
  67. package/dist/esm/lib/components/v2/message-editor/subcomponents/character-limit-counter.js +1 -26
  68. package/dist/esm/lib/components/v2/message-editor/subcomponents/edit-buttons.js +1 -32
  69. package/dist/esm/lib/components/v2/message-editor/subcomponents/error-message.js +1 -22
  70. package/dist/esm/lib/components/v2/message-editor/subcomponents/post-button.js +1 -29
  71. package/dist/esm/lib/components/v2/message-editor/subcomponents/timestamp-toggle.js +1 -2
  72. package/dist/esm/lib/components/v2/message-header/delete-confirmation-popover.js +1 -2
  73. package/dist/esm/lib/components/v2/message-header/message-header.js +1 -90
  74. package/dist/esm/lib/components/v2/message-header/message-options-menu.js +1 -49
  75. package/dist/esm/lib/components/v2/message-header/messages.js +2 -48
  76. package/dist/esm/lib/components/v2/messages-view/hooks/useAutoScroll.js +1 -69
  77. package/dist/esm/lib/components/v2/messages-view/messages-view.js +1 -2
  78. package/dist/esm/lib/components/v2/resolved-state/messages.js +1 -12
  79. package/dist/esm/lib/components/v2/resolved-state/resolved-state.js +1 -2
  80. package/dist/esm/lib/components/v2/show-replies-button/messages.js +1 -12
  81. package/dist/esm/lib/components/v2/show-replies-button/show-replies-button.js +1 -2
  82. package/dist/esm/lib/components/v2/text-message/constants.js +1 -2
  83. package/dist/esm/lib/components/v2/text-message/messages.js +1 -32
  84. package/dist/esm/lib/components/v2/text-message/subcomponents/message-footer.js +1 -64
  85. package/dist/esm/lib/components/v2/text-message/subcomponents/message-renderer.js +1 -87
  86. package/dist/esm/lib/components/v2/text-message/subcomponents/truncate-document.js +1 -113
  87. package/dist/esm/lib/components/v2/text-message/subcomponents/url-segments.js +1 -38
  88. package/dist/esm/lib/components/v2/text-message/text-message.js +1 -79
  89. package/dist/esm/lib/components/v2/user-avatar/getInitials.js +1 -5
  90. package/dist/esm/lib/components/v2/user-avatar/messages.js +1 -12
  91. package/dist/esm/lib/components/v2/user-avatar/user-avatar.js +1 -37
  92. package/dist/esm/lib/messages.js +1 -24
  93. package/dist/esm/lib/threaded-annotations.js +1 -2
  94. package/dist/esm/lib/utils/getErrorMessage.js +1 -2
  95. package/dist/esm/lib/v2/constants.js +1 -2
  96. package/dist/esm/lib/v2/messages.js +1 -6
  97. package/dist/esm/lib/v2/resin-targets.js +1 -25
  98. package/dist/esm/lib/v2/threaded-annotations-context.js +1 -61
  99. package/dist/esm/lib/v2/threaded-annotations.js +1 -2
  100. package/dist/esm/lib/v2/types/annotation-badge-types.js +1 -4
  101. package/dist/esm/lib/v2/types/index.js +1 -2
  102. package/dist/esm/lib/v2/utils/build-mention-content.js +1 -20
  103. package/dist/esm/lib/v2/utils/serialize-mention-markup.js +2 -12
  104. package/package.json +12 -12
@@ -1,106 +1 @@
1
- import e from "../esm/lib/messages.js";
2
- import { THREADED_ANNOTATIONS_PORTAL as t } from "../esm/lib/v2/constants.js";
3
- import { THREADED_ANNOTATIONS_RESIN_COMPONENTS as n, THREADED_ANNOTATIONS_RESIN_FEATURE as r, THREADED_ANNOTATIONS_RESIN_TARGETS as i } from "../esm/lib/v2/resin-targets.js";
4
- import { useMentionContext as a } from "../esm/lib/components/mention-component/mention-context.js";
5
- import { Text as o } from "@box/blueprint-web";
6
- import { useCallback as s, useEffect as c, useRef as l, useState as u } from "react";
7
- import { useIntl as d } from "react-intl";
8
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
9
- import { CollaborationPopover as m } from "@box/collaboration-popover";
10
- import '../styles/mention-component.css';var h = { mention: "_mention_hc7gc_27" }, g = {
11
- "data-resin-component": n.COMMENT_CARD,
12
- "data-resin-feature": r
13
- }, _ = ({ mentionedUserName: n, mentionedUserId: r, mentionedUserEmail: _, authorId: v, mentionId: y }) => {
14
- let b = d(), x = l(!1), { collaborationPopoverProps: S, getAvatarUrl: C, fetchCollaboratorState: w, fetchEmail: T, openPopoverMentionId: E, openPopoverForMentionId: D, closeAllPopovers: O } = a(), [k, A] = u(!1), [j, M] = u(!1), [N, P] = u(_);
15
- c(() => {
16
- P(_);
17
- }, [_, r]);
18
- let { onSubmit: F, onClose: I } = S, L = s(async () => {
19
- if (x.current) {
20
- x.current = !1;
21
- return;
22
- }
23
- if (!j && y && r) {
24
- let e = _ ?? N;
25
- if (!e && T) try {
26
- e = await T(r, n), P(e);
27
- } catch {}
28
- let t = {
29
- id: Number(r),
30
- name: n,
31
- email: e ?? "",
32
- value: r
33
- }, i = !1;
34
- try {
35
- i = await w?.(t) ?? !1;
36
- } catch {}
37
- A(i), await D?.(y, t);
38
- }
39
- }, [
40
- x,
41
- j,
42
- y,
43
- r,
44
- n,
45
- _,
46
- N,
47
- T,
48
- w,
49
- D
50
- ]), R = () => {
51
- O?.(), I?.();
52
- }, z = () => {
53
- j && (x.current = !0, O?.());
54
- }, B = (e) => {
55
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.repeat || L());
56
- }, V = (e, t) => {
57
- O?.(), F?.(e, t);
58
- };
59
- c(() => {
60
- M(E === y);
61
- }, [y, E]);
62
- let H = s((e) => {
63
- e.key === "Escape" && O?.();
64
- }, [O]);
65
- return c(() => (window.addEventListener("keydown", H), () => window.removeEventListener("keydown", H)), [H]), /* @__PURE__ */ f(m, {
66
- open: j,
67
- ...S,
68
- anchor: /* @__PURE__ */ p(o, {
69
- "data-no-expand": !0,
70
- "aria-label": b.formatMessage(e.textMentionAriaLabel),
71
- as: "span",
72
- className: h.mention,
73
- "data-author-id": v,
74
- "data-component-type": "mention",
75
- "data-mention-id": y,
76
- "data-mentioned-user-email": _,
77
- "data-mentioned-user-id": r,
78
- "data-mentioned-user-name": n,
79
- "data-resin-target": i.MENTION,
80
- onClick: L,
81
- onKeyDown: B,
82
- onPointerDown: z,
83
- role: "button",
84
- tabIndex: 0,
85
- variant: "bodyDefault",
86
- children: ["@", n]
87
- }),
88
- onClose: R,
89
- onSubmit: V,
90
- popoverContentContainerProps: {
91
- ...S.popoverContentContainerProps,
92
- ...t,
93
- ...g
94
- },
95
- sideOffset: 0,
96
- userInfo: {
97
- id: r,
98
- name: n,
99
- email: N,
100
- avatarUrl: C?.(r),
101
- isCollaborator: k
102
- }
103
- });
104
- };
105
- _.displayName = "MentionComponent";
106
- export { _ as t };
1
+ import messages from"../esm/lib/messages.js";import{THREADED_ANNOTATIONS_PORTAL}from"../esm/lib/v2/constants.js";import{THREADED_ANNOTATIONS_RESIN_COMPONENTS,THREADED_ANNOTATIONS_RESIN_FEATURE,THREADED_ANNOTATIONS_RESIN_TARGETS}from"../esm/lib/v2/resin-targets.js";import{useMentionContext}from"../esm/lib/components/mention-component/mention-context.js";import{Text}from"@box/blueprint-web";import{useCallback,useEffect,useRef,useState}from"react";import{useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import{CollaborationPopover}from"@box/collaboration-popover";import '../styles/mention-component.css';var mention_component_module_default={mention:`_mention_hc7gc_27`},MENTION_POPOVER_RESIN_ATTRIBUTES={"data-resin-component":THREADED_ANNOTATIONS_RESIN_COMPONENTS.COMMENT_CARD,"data-resin-feature":THREADED_ANNOTATIONS_RESIN_FEATURE},MentionComponent=({mentionedUserName,mentionedUserId,mentionedUserEmail,authorId,mentionId})=>{let intl=useIntl(),suppressNextOpenRef=useRef(!1),{collaborationPopoverProps,getAvatarUrl,fetchCollaboratorState,fetchEmail,openPopoverMentionId,openPopoverForMentionId,closeAllPopovers}=useMentionContext(),[isCollaborator,setIsCollaborator]=useState(!1),[isPopoverOpen,setIsPopoverOpen]=useState(!1),[resolvedEmail,setResolvedEmail]=useState(mentionedUserEmail);useEffect(()=>{setResolvedEmail(mentionedUserEmail)},[mentionedUserEmail,mentionedUserId]);let{onSubmit,onClose}=collaborationPopoverProps,handleClick=useCallback(async()=>{if(suppressNextOpenRef.current){suppressNextOpenRef.current=!1;return}if(!isPopoverOpen&&mentionId&&mentionedUserId){let email=mentionedUserEmail??resolvedEmail;if(!email&&fetchEmail)try{email=await fetchEmail(mentionedUserId,mentionedUserName),setResolvedEmail(email)}catch{}let user={id:Number(mentionedUserId),name:mentionedUserName,email:email??``,value:mentionedUserId},collaboratorState=!1;try{collaboratorState=await fetchCollaboratorState?.(user)??!1}catch{}setIsCollaborator(collaboratorState),await openPopoverForMentionId?.(mentionId,user)}},[suppressNextOpenRef,isPopoverOpen,mentionId,mentionedUserId,mentionedUserName,mentionedUserEmail,resolvedEmail,fetchEmail,fetchCollaboratorState,openPopoverForMentionId]),handleClose=()=>{closeAllPopovers?.(),onClose?.()},handlePointerDown=()=>{isPopoverOpen&&(suppressNextOpenRef.current=!0,closeAllPopovers?.())},handleAnchorKeyDown=event=>{(event.key===`Enter`||event.key===` `)&&(event.preventDefault(),event.repeat||handleClick())},handleSubmit=(userInfo,inviteType)=>{closeAllPopovers?.(),onSubmit?.(userInfo,inviteType)};useEffect(()=>{setIsPopoverOpen(openPopoverMentionId===mentionId)},[mentionId,openPopoverMentionId]);let handleKeyDown=useCallback(event=>{event.key===`Escape`&&closeAllPopovers?.()},[closeAllPopovers]);return useEffect(()=>(window.addEventListener(`keydown`,handleKeyDown),()=>window.removeEventListener(`keydown`,handleKeyDown)),[handleKeyDown]),jsx(CollaborationPopover,{open:isPopoverOpen,...collaborationPopoverProps,anchor:jsxs(Text,{"data-no-expand":!0,"aria-label":intl.formatMessage(messages.textMentionAriaLabel),as:`span`,className:mention_component_module_default.mention,"data-author-id":authorId,"data-component-type":`mention`,"data-mention-id":mentionId,"data-mentioned-user-email":mentionedUserEmail,"data-mentioned-user-id":mentionedUserId,"data-mentioned-user-name":mentionedUserName,"data-resin-target":THREADED_ANNOTATIONS_RESIN_TARGETS.MENTION,onClick:handleClick,onKeyDown:handleAnchorKeyDown,onPointerDown:handlePointerDown,role:`button`,tabIndex:0,variant:`bodyDefault`,children:[`@`,mentionedUserName]}),onClose:handleClose,onSubmit:handleSubmit,popoverContentContainerProps:{...collaborationPopoverProps.popoverContentContainerProps,...THREADED_ANNOTATIONS_PORTAL,...MENTION_POPOVER_RESIN_ATTRIBUTES},sideOffset:0,userInfo:{id:mentionedUserId,name:mentionedUserName,email:resolvedEmail,avatarUrl:getAvatarUrl?.(mentionedUserId),isCollaborator}})};MentionComponent.displayName=`MentionComponent`;export{MentionComponent as t};
@@ -1,12 +1 @@
1
- import '../styles/message-editor.css';var e = {
2
- editorDisabled: "_editorDisabled_ng6un_29",
3
- editor: "_editor_ng6un_29",
4
- messageEditor: "_messageEditor_ng6un_36",
5
- errorMessage: "_errorMessage_ng6un_39",
6
- errorText: "_errorText_ng6un_45",
7
- actionsContainer: "_actionsContainer_ng6un_48",
8
- editorContainer: "_editorContainer_ng6un_56",
9
- editorError: "_editorError_ng6un_95",
10
- anchorElement: "_anchorElement_ng6un_104"
11
- };
12
- export { e as t };
1
+ import '../styles/message-editor.css';var message_editor_module_default={editorDisabled:`_editorDisabled_ng6un_29`,editor:`_editor_ng6un_29`,messageEditor:`_messageEditor_ng6un_36`,errorMessage:`_errorMessage_ng6un_39`,errorText:`_errorText_ng6un_45`,actionsContainer:`_actionsContainer_ng6un_48`,editorContainer:`_editorContainer_ng6un_56`,editorError:`_editorError_ng6un_95`,anchorElement:`_anchorElement_ng6un_104`};export{message_editor_module_default as t};
@@ -1,29 +1 @@
1
- import '../styles/message-editor2.css';var e = {
2
- messageEditorWrapper: "_messageEditorWrapper_1498d_29",
3
- editActionsColumn: "_editActionsColumn_1498d_34",
4
- editActionsRow: "_editActionsRow_1498d_41",
5
- characterLimitCounter: "_characterLimitCounter_1498d_47",
6
- characterLimitCounterExceeded: "_characterLimitCounterExceeded_1498d_50",
7
- messageEditor: "_messageEditor_1498d_29",
8
- editorEditMode: "_editorEditMode_1498d_68",
9
- editorFirstAnnotation: "_editorFirstAnnotation_1498d_75",
10
- editorError: "_editorError_1498d_75",
11
- editorViewport: "_editorViewport_1498d_83",
12
- editorContainer: "_editorContainer_1498d_89",
13
- editor: "_editor_1498d_68",
14
- editorFade: "_editorFade_1498d_149",
15
- editorFadeHidden: "_editorFadeHidden_1498d_160",
16
- editorFullWidth: "_editorFullWidth_1498d_163",
17
- actionsWrapper: "_actionsWrapper_1498d_167",
18
- actionsWrapperInner: "_actionsWrapperInner_1498d_177",
19
- timestampToggle: "_timestampToggle_1498d_184",
20
- errorMessage: "_errorMessage_1498d_187",
21
- errorText: "_errorText_1498d_196",
22
- editorHasScroll: "_editorHasScroll_1498d_205",
23
- editorCharacterLimitExceeded: "_editorCharacterLimitExceeded_1498d_216",
24
- characterLimitExceeded: "_characterLimitExceeded_1498d_238",
25
- scrolledToBottom: "_scrolledToBottom_1498d_241",
26
- anchorElement: "_anchorElement_1498d_245",
27
- withTimestampToggle: "_withTimestampToggle_1498d_254"
28
- };
29
- export { e as t };
1
+ import '../styles/message-editor2.css';var message_editor_module_default={messageEditorWrapper:`_messageEditorWrapper_1498d_29`,editActionsColumn:`_editActionsColumn_1498d_34`,editActionsRow:`_editActionsRow_1498d_41`,characterLimitCounter:`_characterLimitCounter_1498d_47`,characterLimitCounterExceeded:`_characterLimitCounterExceeded_1498d_50`,messageEditor:`_messageEditor_1498d_29`,editorEditMode:`_editorEditMode_1498d_68`,editorFirstAnnotation:`_editorFirstAnnotation_1498d_75`,editorError:`_editorError_1498d_75`,editorViewport:`_editorViewport_1498d_83`,editorContainer:`_editorContainer_1498d_89`,editor:`_editor_1498d_68`,editorFade:`_editorFade_1498d_149`,editorFadeHidden:`_editorFadeHidden_1498d_160`,editorFullWidth:`_editorFullWidth_1498d_163`,actionsWrapper:`_actionsWrapper_1498d_167`,actionsWrapperInner:`_actionsWrapperInner_1498d_177`,timestampToggle:`_timestampToggle_1498d_184`,errorMessage:`_errorMessage_1498d_187`,errorText:`_errorText_1498d_196`,editorHasScroll:`_editorHasScroll_1498d_205`,editorCharacterLimitExceeded:`_editorCharacterLimitExceeded_1498d_216`,characterLimitExceeded:`_characterLimitExceeded_1498d_238`,scrolledToBottom:`_scrolledToBottom_1498d_241`,anchorElement:`_anchorElement_1498d_245`,withTimestampToggle:`_withTimestampToggle_1498d_254`};export{message_editor_module_default as t};
@@ -1,49 +1 @@
1
- import { UserAvatarButton as e } from "../esm/lib/components/user-avatar/user-avatar.js";
2
- import { t } from "./delete-annotations-message-popover.js";
3
- import { Text as n } from "@box/blueprint-web";
4
- import { useState as r } from "react";
5
- import { ReadableTime as i } from "@box/readable-time";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
- import '../styles/message-header.css';var s = {
8
- headerContainer: "_headerContainer_18dlz_29",
9
- information: "_information_18dlz_37",
10
- textContainer: "_textContainer_18dlz_44",
11
- author: "_author_18dlz_52",
12
- deleteAction: "_deleteAction_18dlz_58"
13
- }, c = ({ author: c, createdAt: l, isDeleteAllowed: u = !0, onAvatarClick: d, onDelete: f }) => {
14
- let [p, m] = r(!1);
15
- return /* @__PURE__ */ o("div", {
16
- className: s.headerContainer,
17
- children: [/* @__PURE__ */ o("div", {
18
- className: s.information,
19
- children: [/* @__PURE__ */ a(e, {
20
- onClick: d,
21
- user: c
22
- }), /* @__PURE__ */ o("div", {
23
- className: s.textContainer,
24
- children: [/* @__PURE__ */ a(n, {
25
- as: "p",
26
- className: s.author,
27
- color: "textOnLightDefault",
28
- variant: "bodyDefaultBold",
29
- children: c.name
30
- }), /* @__PURE__ */ a(i, {
31
- textProps: {
32
- as: "span",
33
- variant: "caption",
34
- color: "textOnLightSecondary"
35
- },
36
- timestamp: l
37
- })]
38
- })]
39
- }), u && /* @__PURE__ */ a("div", {
40
- className: s.deleteAction,
41
- "data-state": p ? "open" : "closed",
42
- children: /* @__PURE__ */ a(t, {
43
- onDelete: f,
44
- onOpenChange: m
45
- })
46
- })]
47
- });
48
- };
49
- export { c as t };
1
+ import{UserAvatarButton}from"../esm/lib/components/user-avatar/user-avatar.js";import{t as DeleteAnnotationMessagePopover}from"./delete-annotations-message-popover.js";import{Text}from"@box/blueprint-web";import{useState}from"react";import{ReadableTime}from"@box/readable-time";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/message-header.css';var message_header_module_default={headerContainer:`_headerContainer_18dlz_29`,information:`_information_18dlz_37`,textContainer:`_textContainer_18dlz_44`,author:`_author_18dlz_52`,deleteAction:`_deleteAction_18dlz_58`},MessageHeader=({author,createdAt,isDeleteAllowed=!0,onAvatarClick,onDelete})=>{let[isPopoverOpen,setIsPopoverOpen]=useState(!1);return jsxs(`div`,{className:message_header_module_default.headerContainer,children:[jsxs(`div`,{className:message_header_module_default.information,children:[jsx(UserAvatarButton,{onClick:onAvatarClick,user:author}),jsxs(`div`,{className:message_header_module_default.textContainer,children:[jsx(Text,{as:`p`,className:message_header_module_default.author,color:`textOnLightDefault`,variant:`bodyDefaultBold`,children:author.name}),jsx(ReadableTime,{textProps:{as:`span`,variant:`caption`,color:`textOnLightSecondary`},timestamp:createdAt})]})]}),isDeleteAllowed&&jsx(`div`,{className:message_header_module_default.deleteAction,"data-state":isPopoverOpen?`open`:`closed`,children:jsx(DeleteAnnotationMessagePopover,{onDelete,onOpenChange:setIsPopoverOpen})})]})};export{MessageHeader as t};
@@ -1,99 +1 @@
1
- import { ThreadViewState as e, useThreadedAnnotationsContext as t } from "../esm/lib/v2/threaded-annotations-context.js";
2
- import { t as n } from "./resolved-state.js";
3
- import { t as r } from "./show-replies-button.js";
4
- import { TextMessage as i } from "../esm/lib/components/v2/text-message/text-message.js";
5
- import { useAutoScroll as a } from "../esm/lib/components/v2/messages-view/hooks/useAutoScroll.js";
6
- import o from "clsx";
7
- import { useRef as s } from "react";
8
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
- import '../styles/messages-view.css';var u = {
10
- messagesViewWrapper: "_messagesViewWrapper_1awp7_29",
11
- overflowing: "_overflowing_1awp7_34",
12
- scrollable: "_scrollable_1awp7_34",
13
- withEditorBelow: "_withEditorBelow_1awp7_37",
14
- messagesView: "_messagesView_1awp7_29",
15
- repliesContainer: "_repliesContainer_1awp7_78",
16
- messagesFade: "_messagesFade_1awp7_84"
17
- }, d = ({ messages: d, isResolved: f = !1, resolvedBy: p, resolvedAt: m, maxCharacterCount: h, onDelete: g, onThreadDelete: _, onAvatarClick: v, onCopyLink: y, onEdit: b, onEditError: x, onResolve: S, onUnresolve: C, userSelectorProps: w, annotationTarget: T, onAnnotationBadgeClick: E, originalContentDeleted: D }) => {
18
- let { viewState: O, dispatch: k, isAnnotations: A } = t(), j = s(null), M = O !== e.Collapsed, N = O === e.Composing, P = d.length > 2, F = P && !M, { handleScroll: I, isOverflowing: L } = a({
19
- messageCount: d.length,
20
- containerRef: j,
21
- enabled: A,
22
- isExpanded: M,
23
- suppressAutoScroll: F
24
- }), R = d[0], z = d.slice(1), B = z.length >= 1, V = z[z.length - 1], H = z.slice(0, -1), U = P && !M;
25
- if (!R) return null;
26
- let W = H[H.length - 1]?.author, G = H.length >= 2 ? H[H.length - 2].author : void 0, K = () => k({ type: "EXPAND" });
27
- return /* @__PURE__ */ l("div", {
28
- className: o(u.messagesViewWrapper, L && u.overflowing, L && N && u.withEditorBelow),
29
- children: [/* @__PURE__ */ l("div", {
30
- ref: j,
31
- className: o(u.messagesView, A && u.scrollable),
32
- onScroll: I,
33
- children: [
34
- /* @__PURE__ */ c(i, {
35
- ...R,
36
- hasReplies: B,
37
- showThreadedIndicator: B || f,
38
- isResolved: f,
39
- maxCharacterCount: h,
40
- onDelete: g,
41
- onThreadDelete: _,
42
- onAvatarClick: v,
43
- onCopyLink: y,
44
- onEdit: b,
45
- onEditError: x,
46
- onResolve: S,
47
- onUnresolve: C,
48
- isFirstMessage: !0,
49
- userSelectorProps: w,
50
- annotationTarget: T,
51
- onAnnotationBadgeClick: E,
52
- originalContentDeleted: D
53
- }),
54
- U && W && /* @__PURE__ */ c(r, {
55
- lastUser: W,
56
- repliesCount: H.length,
57
- secondLastUser: G,
58
- onShowReplies: K
59
- }),
60
- M && H.length > 0 && /* @__PURE__ */ c("div", {
61
- className: u.repliesContainer,
62
- children: H.map((e) => /* @__PURE__ */ c(i, {
63
- ...e,
64
- showThreadedIndicator: !0,
65
- isResolved: f,
66
- maxCharacterCount: h,
67
- onDelete: g,
68
- onAvatarClick: v,
69
- onCopyLink: y,
70
- onEdit: b,
71
- onEditError: x,
72
- onResolve: S,
73
- onUnresolve: C,
74
- userSelectorProps: w
75
- }, e.id))
76
- }),
77
- V && /* @__PURE__ */ c(i, {
78
- ...V,
79
- showThreadedIndicator: f,
80
- isResolved: f,
81
- maxCharacterCount: h,
82
- onDelete: g,
83
- onAvatarClick: v,
84
- onCopyLink: y,
85
- onEdit: b,
86
- onEditError: x,
87
- onResolve: S,
88
- onUnresolve: C,
89
- userSelectorProps: w
90
- }),
91
- f && p && m && /* @__PURE__ */ c(n, {
92
- authorName: p,
93
- createdAt: m
94
- })
95
- ]
96
- }), L && /* @__PURE__ */ c("div", { className: u.messagesFade })]
97
- });
98
- };
99
- export { d as t };
1
+ import{ThreadViewState,useThreadedAnnotationsContext}from"../esm/lib/v2/threaded-annotations-context.js";import{t as ResolvedState}from"./resolved-state.js";import{t as ShowRepliesButton}from"./show-replies-button.js";import{TextMessage}from"../esm/lib/components/v2/text-message/text-message.js";import{useAutoScroll}from"../esm/lib/components/v2/messages-view/hooks/useAutoScroll.js";import clsx from"clsx";import{useRef}from"react";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/messages-view.css';var messages_view_module_default={messagesViewWrapper:`_messagesViewWrapper_1awp7_29`,overflowing:`_overflowing_1awp7_34`,scrollable:`_scrollable_1awp7_34`,withEditorBelow:`_withEditorBelow_1awp7_37`,messagesView:`_messagesView_1awp7_29`,repliesContainer:`_repliesContainer_1awp7_78`,messagesFade:`_messagesFade_1awp7_84`},MessagesView=({messages,isResolved=!1,resolvedBy,resolvedAt,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,userSelectorProps,annotationTarget,onAnnotationBadgeClick,originalContentDeleted})=>{let{viewState,dispatch,isAnnotations}=useThreadedAnnotationsContext(),containerRef=useRef(null),isExpanded=viewState!==ThreadViewState.Collapsed,isEditorVisible=viewState===ThreadViewState.Composing,hasHiddenReplies=messages.length>2,repliesHiddenWhileCollapsed=hasHiddenReplies&&!isExpanded,{handleScroll,isOverflowing}=useAutoScroll({messageCount:messages.length,containerRef,enabled:isAnnotations,isExpanded,suppressAutoScroll:repliesHiddenWhileCollapsed}),rootMessage=messages[0],replies=messages.slice(1),hasReplies=replies.length>=1,lastReply=replies[replies.length-1],middleReplies=replies.slice(0,-1),showRepliesButton=hasHiddenReplies&&!isExpanded;if(!rootMessage)return null;let buttonLastUser=middleReplies[middleReplies.length-1]?.author,buttonSecondLastUser=middleReplies.length>=2?middleReplies[middleReplies.length-2].author:void 0,handleShowReplies=()=>dispatch({type:`EXPAND`});return jsxs(`div`,{className:clsx(messages_view_module_default.messagesViewWrapper,isOverflowing&&messages_view_module_default.overflowing,isOverflowing&&isEditorVisible&&messages_view_module_default.withEditorBelow),children:[jsxs(`div`,{ref:containerRef,className:clsx(messages_view_module_default.messagesView,isAnnotations&&messages_view_module_default.scrollable),onScroll:handleScroll,children:[jsx(TextMessage,{...rootMessage,hasReplies,showThreadedIndicator:hasReplies||isResolved,isResolved,maxCharacterCount,onDelete,onThreadDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,isFirstMessage:!0,userSelectorProps,annotationTarget,onAnnotationBadgeClick,originalContentDeleted}),showRepliesButton&&buttonLastUser&&jsx(ShowRepliesButton,{lastUser:buttonLastUser,repliesCount:middleReplies.length,secondLastUser:buttonSecondLastUser,onShowReplies:handleShowReplies}),isExpanded&&middleReplies.length>0&&jsx(`div`,{className:messages_view_module_default.repliesContainer,children:middleReplies.map(reply=>jsx(TextMessage,{...reply,showThreadedIndicator:!0,isResolved,maxCharacterCount,onDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,userSelectorProps},reply.id))}),lastReply&&jsx(TextMessage,{...lastReply,showThreadedIndicator:isResolved,isResolved,maxCharacterCount,onDelete,onAvatarClick,onCopyLink,onEdit,onEditError,onResolve,onUnresolve,userSelectorProps}),isResolved&&resolvedBy&&resolvedAt&&jsx(ResolvedState,{authorName:resolvedBy,createdAt:resolvedAt})]}),isOverflowing&&jsx(`div`,{className:messages_view_module_default.messagesFade})]})};export{MessagesView as t};
@@ -1,55 +1 @@
1
- import e from "../esm/lib/components/v2/resolved-state/messages.js";
2
- import { Text as t } from "@box/blueprint-web";
3
- import { useIntl as n } from "react-intl";
4
- import { ReadableTime as r } from "@box/readable-time";
5
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
- import { bpGreenLight125 as o } from "@box/blueprint-web-assets/tokens/tokens";
7
- import { CheckmarkCircle as s } from "@box/blueprint-web-assets/icons/MediumFilled";
8
- import '../styles/resolved-state.css';var c = {
9
- resolvedState: "_resolvedState_1ts95_29",
10
- leftContainer: "_leftContainer_1ts95_37",
11
- rightContainer: "_rightContainer_1ts95_41",
12
- statusLine: "_statusLine_1ts95_47",
13
- authorName: "_authorName_1ts95_55",
14
- statusText: "_statusText_1ts95_62"
15
- }, l = ({ authorName: l, createdAt: u }) => {
16
- let d = n();
17
- return /* @__PURE__ */ a("div", {
18
- "aria-label": d.formatMessage(e.resolvedStateAriaLabel),
19
- className: c.resolvedState,
20
- children: [/* @__PURE__ */ i("div", {
21
- className: c.leftContainer,
22
- children: /* @__PURE__ */ i(s, {
23
- color: o,
24
- height: 24,
25
- width: 24
26
- })
27
- }), /* @__PURE__ */ a("div", {
28
- className: c.rightContainer,
29
- children: [/* @__PURE__ */ a("div", {
30
- className: c.statusLine,
31
- children: [/* @__PURE__ */ i(t, {
32
- as: "span",
33
- className: c.authorName,
34
- color: "textOnLightDefault",
35
- variant: "bodyDefaultBold",
36
- children: l
37
- }), /* @__PURE__ */ i(t, {
38
- as: "span",
39
- className: c.statusText,
40
- color: "textOnLightDefault",
41
- variant: "bodyDefault",
42
- children: d.formatMessage(e.markedAsResolved)
43
- })]
44
- }), /* @__PURE__ */ i(r, {
45
- textProps: {
46
- as: "span",
47
- variant: "bodySmall",
48
- color: "textOnLightSecondary"
49
- },
50
- timestamp: u
51
- })]
52
- })]
53
- });
54
- };
55
- export { l as t };
1
+ import messages from"../esm/lib/components/v2/resolved-state/messages.js";import{Text}from"@box/blueprint-web";import{useIntl}from"react-intl";import{ReadableTime}from"@box/readable-time";import{jsx,jsxs}from"react/jsx-runtime";import{bpGreenLight125}from"@box/blueprint-web-assets/tokens/tokens";import{CheckmarkCircle}from"@box/blueprint-web-assets/icons/MediumFilled";import '../styles/resolved-state.css';var resolved_state_module_default={resolvedState:`_resolvedState_1ts95_29`,leftContainer:`_leftContainer_1ts95_37`,rightContainer:`_rightContainer_1ts95_41`,statusLine:`_statusLine_1ts95_47`,authorName:`_authorName_1ts95_55`,statusText:`_statusText_1ts95_62`},ResolvedState=({authorName,createdAt})=>{let intl=useIntl();return jsxs(`div`,{"aria-label":intl.formatMessage(messages.resolvedStateAriaLabel),className:resolved_state_module_default.resolvedState,children:[jsx(`div`,{className:resolved_state_module_default.leftContainer,children:jsx(CheckmarkCircle,{color:bpGreenLight125,height:24,width:24})}),jsxs(`div`,{className:resolved_state_module_default.rightContainer,children:[jsxs(`div`,{className:resolved_state_module_default.statusLine,children:[jsx(Text,{as:`span`,className:resolved_state_module_default.authorName,color:`textOnLightDefault`,variant:`bodyDefaultBold`,children:authorName}),jsx(Text,{as:`span`,className:resolved_state_module_default.statusText,color:`textOnLightDefault`,variant:`bodyDefault`,children:intl.formatMessage(messages.markedAsResolved)})]}),jsx(ReadableTime,{textProps:{as:`span`,variant:`bodySmall`,color:`textOnLightSecondary`},timestamp:createdAt})]})]})};export{ResolvedState as t};
@@ -1,60 +1 @@
1
- import { UserAvatar as e } from "../esm/lib/components/v2/user-avatar/user-avatar.js";
2
- import t from "../esm/lib/components/v2/show-replies-button/messages.js";
3
- import { ButtonWrapper as n, Text as r } from "@box/blueprint-web";
4
- import i from "clsx";
5
- import { useIntl as a } from "react-intl";
6
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
- import '../styles/show-replies-button.css';var c = {
8
- showRepliesButtonWrapper: "_showRepliesButtonWrapper_b1es9_1",
9
- contentWrapper: "_contentWrapper_b1es9_5",
10
- threadedIndicator: "_threadedIndicator_b1es9_9",
11
- buttonWrapper: "_buttonWrapper_b1es9_25",
12
- repliesText: "_repliesText_b1es9_36",
13
- avatarWrapper: "_avatarWrapper_b1es9_42",
14
- lastUserAvatar: "_lastUserAvatar_b1es9_46",
15
- secondLastUserAvatar: "_secondLastUserAvatar_b1es9_47",
16
- lastUserAvatarStacked: "_lastUserAvatarStacked_b1es9_52"
17
- }, l = ({ onShowReplies: l, repliesCount: u, lastUser: d, secondLastUser: f }) => {
18
- let p = a(), m = p.formatMessage(t.showReplies, { number: u });
19
- return /* @__PURE__ */ o("div", {
20
- className: c.showRepliesButtonWrapper,
21
- children: /* @__PURE__ */ s("div", {
22
- className: c.contentWrapper,
23
- children: [/* @__PURE__ */ o("div", { className: c.threadedIndicator }), /* @__PURE__ */ s(n, {
24
- "aria-label": p.formatMessage(t.showRepliesButtonAriaLabel),
25
- className: c.buttonWrapper,
26
- "data-no-expand": !0,
27
- onClick: l,
28
- children: [/* @__PURE__ */ s("div", {
29
- className: c.avatarWrapper,
30
- children: [f && /* @__PURE__ */ o("div", {
31
- className: c.secondLastUserAvatar,
32
- children: /* @__PURE__ */ o(e, {
33
- size: "small",
34
- user: {
35
- ...f,
36
- isExternalUser: !1
37
- }
38
- })
39
- }), /* @__PURE__ */ o("div", {
40
- className: i(c.lastUserAvatar, f && c.lastUserAvatarStacked),
41
- children: /* @__PURE__ */ o(e, {
42
- size: "small",
43
- user: {
44
- ...d,
45
- isExternalUser: !1
46
- }
47
- })
48
- })]
49
- }), /* @__PURE__ */ o(r, {
50
- as: "span",
51
- className: c.repliesText,
52
- color: "textOnLightSecondary",
53
- variant: "bodyDefaultBold",
54
- children: m
55
- })]
56
- })]
57
- })
58
- });
59
- };
60
- export { l as t };
1
+ import{UserAvatar}from"../esm/lib/components/v2/user-avatar/user-avatar.js";import messages from"../esm/lib/components/v2/show-replies-button/messages.js";import{ButtonWrapper,Text}from"@box/blueprint-web";import clsx from"clsx";import{useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/show-replies-button.css';var show_replies_button_module_default={showRepliesButtonWrapper:`_showRepliesButtonWrapper_b1es9_1`,contentWrapper:`_contentWrapper_b1es9_5`,threadedIndicator:`_threadedIndicator_b1es9_9`,buttonWrapper:`_buttonWrapper_b1es9_25`,repliesText:`_repliesText_b1es9_36`,avatarWrapper:`_avatarWrapper_b1es9_42`,lastUserAvatar:`_lastUserAvatar_b1es9_46`,secondLastUserAvatar:`_secondLastUserAvatar_b1es9_47`,lastUserAvatarStacked:`_lastUserAvatarStacked_b1es9_52`},ShowRepliesButton=({onShowReplies,repliesCount,lastUser,secondLastUser})=>{let intl=useIntl(),buttonText=intl.formatMessage(messages.showReplies,{number:repliesCount});return jsx(`div`,{className:show_replies_button_module_default.showRepliesButtonWrapper,children:jsxs(`div`,{className:show_replies_button_module_default.contentWrapper,children:[jsx(`div`,{className:show_replies_button_module_default.threadedIndicator}),jsxs(ButtonWrapper,{"aria-label":intl.formatMessage(messages.showRepliesButtonAriaLabel),className:show_replies_button_module_default.buttonWrapper,"data-no-expand":!0,onClick:onShowReplies,children:[jsxs(`div`,{className:show_replies_button_module_default.avatarWrapper,children:[secondLastUser&&jsx(`div`,{className:show_replies_button_module_default.secondLastUserAvatar,children:jsx(UserAvatar,{size:`small`,user:{...secondLastUser,isExternalUser:!1}})}),jsx(`div`,{className:clsx(show_replies_button_module_default.lastUserAvatar,secondLastUser&&show_replies_button_module_default.lastUserAvatarStacked),children:jsx(UserAvatar,{size:`small`,user:{...lastUser,isExternalUser:!1}})})]}),jsx(Text,{as:`span`,className:show_replies_button_module_default.repliesText,color:`textOnLightSecondary`,variant:`bodyDefaultBold`,children:buttonText})]})]})})};export{ShowRepliesButton as t};
@@ -1,21 +1 @@
1
- import e from "../esm/lib/messages.js";
2
- import { t } from "./message-header.js";
3
- import { MessageRenderer as n } from "../esm/lib/components/text-message/message-renderer.js";
4
- import { useIntl as r } from "react-intl";
5
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
- import '../styles/text-message.css';var o = { textMessage: "_textMessage_mqpx0_1" }, s = ({ textMessageData: s, isDeleteAllowed: c = !0, onAvatarClick: l, onDelete: u }) => {
7
- let { author: d, message: f, createdAt: p, id: m } = s;
8
- return /* @__PURE__ */ a("div", {
9
- "aria-label": r().formatMessage(e.annotationMessageAriaLabel),
10
- className: o.textMessage,
11
- "data-message-wrapper": !0,
12
- children: [/* @__PURE__ */ i(t, {
13
- author: d,
14
- createdAt: p,
15
- isDeleteAllowed: c,
16
- onAvatarClick: l,
17
- onDelete: () => u(m)
18
- }), /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(n, { messageObject: f }) })]
19
- });
20
- };
21
- export { s as t };
1
+ import messages from"../esm/lib/messages.js";import{t as MessageHeader}from"./message-header.js";import{MessageRenderer}from"../esm/lib/components/text-message/message-renderer.js";import{useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/text-message.css';var text_message_module_default={textMessage:`_textMessage_mqpx0_1`},TextMessage=({textMessageData,isDeleteAllowed=!0,onAvatarClick,onDelete})=>{let{author,message,createdAt,id}=textMessageData;return jsxs(`div`,{"aria-label":useIntl().formatMessage(messages.annotationMessageAriaLabel),className:text_message_module_default.textMessage,"data-message-wrapper":!0,children:[jsx(MessageHeader,{author,createdAt,isDeleteAllowed,onAvatarClick,onDelete:()=>onDelete(id)}),jsx(`div`,{children:jsx(MessageRenderer,{messageObject:message})})]})};export{TextMessage as t};
@@ -1,14 +1 @@
1
- import '../styles/text-message2.css';var e = {
2
- textMessage: "_textMessage_1mths_29",
3
- contentWrapper: "_contentWrapper_1mths_38",
4
- threadedIndicator: "_threadedIndicator_1mths_43",
5
- threadedIndicatorHidden: "_threadedIndicatorHidden_1mths_59",
6
- messageContent: "_messageContent_1mths_62",
7
- inlineEditSlot: "_inlineEditSlot_1mths_69",
8
- annotationBadgeWrapper: "_annotationBadgeWrapper_1mths_72",
9
- messageFooter: "_messageFooter_1mths_81",
10
- readableTimeWrapper: "_readableTimeWrapper_1mths_89",
11
- replyButton: "_replyButton_1mths_93",
12
- seeMoreButton: "_seeMoreButton_1mths_108"
13
- };
14
- export { e as t };
1
+ import '../styles/text-message2.css';var text_message_module_default={textMessage:`_textMessage_1mths_29`,contentWrapper:`_contentWrapper_1mths_38`,threadedIndicator:`_threadedIndicator_1mths_43`,threadedIndicatorHidden:`_threadedIndicatorHidden_1mths_59`,messageContent:`_messageContent_1mths_62`,inlineEditSlot:`_inlineEditSlot_1mths_69`,annotationBadgeWrapper:`_annotationBadgeWrapper_1mths_72`,messageFooter:`_messageFooter_1mths_81`,readableTimeWrapper:`_readableTimeWrapper_1mths_89`,replyButton:`_replyButton_1mths_93`,seeMoreButton:`_seeMoreButton_1mths_108`};export{text_message_module_default as t};
@@ -1,71 +1 @@
1
- import e from "../esm/lib/messages.js";
2
- import { MentionContextProvider as t } from "../esm/lib/components/mention-component/mention-context.js";
3
- import { MessagesView as n } from "../esm/lib/components/messages-view/messages-view.js";
4
- import { MessageEditor as r } from "../esm/lib/components/message-editor/message-editor.js";
5
- import { TextButton as i } from "@box/blueprint-web";
6
- import { ArrowArchedRight as a } from "@box/blueprint-web-assets/icons/Fill";
7
- import o from "clsx";
8
- import { useCallback as s, useEffect as c, useState as l } from "react";
9
- import { useIntl as u } from "react-intl";
10
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
11
- import '../styles/threaded-annotations.css';var p = {
12
- threadedAnnotations: "_threadedAnnotations_14dbm_1",
13
- messagesContainer: "_messagesContainer_14dbm_11",
14
- editorContainer: "_editorContainer_14dbm_20",
15
- editorContainerWithBorder: "_editorContainerWithBorder_14dbm_25",
16
- removePaddingTop: "_removePaddingTop_14dbm_28"
17
- }, m = ({ messageEditorOptions: m, messagesViewOptions: h, onEditorOpen: g, onEditorClose: _, onAnnotationsClose: v, isReplyAllowed: y = !0, collaborationPopoverProps: b, getAvatarUrl: x, fetchCollaboratorState: S, fetchEmail: C }) => {
18
- let w = h.messages.length, T = w === 0, E = u(), [D, O] = l(!1), [k, A] = l(() => w === 0);
19
- c(() => {
20
- w === 0 && A(!0);
21
- }, [w]);
22
- let j = s(() => {
23
- y && (A(!0), g?.());
24
- }, [g, y]), M = s((e) => {
25
- if (T && e) {
26
- v?.();
27
- return;
28
- }
29
- A(!1), _?.();
30
- }, [
31
- _,
32
- T,
33
- v
34
- ]), N = s((e) => {
35
- O(e);
36
- }, []);
37
- return /* @__PURE__ */ d(t, {
38
- value: {
39
- collaborationPopoverProps: b,
40
- getAvatarUrl: x,
41
- fetchCollaboratorState: S,
42
- fetchEmail: C
43
- },
44
- children: /* @__PURE__ */ f("div", {
45
- className: p.threadedAnnotations,
46
- children: [/* @__PURE__ */ d("div", {
47
- className: o(p.messagesContainer, { [p.removePaddingTop]: T }),
48
- children: /* @__PURE__ */ d(n, {
49
- ...h,
50
- onOverflowChange: N
51
- })
52
- }), /* @__PURE__ */ d("div", {
53
- className: o(p.editorContainer, {
54
- [p.removePaddingBottom]: !y,
55
- [p.editorContainerWithBorder]: D && y
56
- }),
57
- children: y && (k ? /* @__PURE__ */ d(r, {
58
- ...m,
59
- messageCount: w,
60
- onCancel: M
61
- }) : /* @__PURE__ */ d(i, {
62
- "aria-label": E.formatMessage(e.replyButtonAriaLabel),
63
- icon: a,
64
- onClick: j,
65
- children: E.formatMessage(e.reply)
66
- }))
67
- })]
68
- })
69
- });
70
- };
71
- export { m as t };
1
+ import messages from"../esm/lib/messages.js";import{MentionContextProvider}from"../esm/lib/components/mention-component/mention-context.js";import{MessagesView}from"../esm/lib/components/messages-view/messages-view.js";import{MessageEditor}from"../esm/lib/components/message-editor/message-editor.js";import{TextButton}from"@box/blueprint-web";import{ArrowArchedRight}from"@box/blueprint-web-assets/icons/Fill";import clsx from"clsx";import{useCallback,useEffect,useState}from"react";import{useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import '../styles/threaded-annotations.css';var threaded_annotations_module_default={threadedAnnotations:`_threadedAnnotations_14dbm_1`,messagesContainer:`_messagesContainer_14dbm_11`,editorContainer:`_editorContainer_14dbm_20`,editorContainerWithBorder:`_editorContainerWithBorder_14dbm_25`,removePaddingTop:`_removePaddingTop_14dbm_28`},ThreadedAnnotations=({messageEditorOptions,messagesViewOptions,onEditorOpen,onEditorClose,onAnnotationsClose,isReplyAllowed=!0,collaborationPopoverProps,getAvatarUrl,fetchCollaboratorState,fetchEmail})=>{let messageCount=messagesViewOptions.messages.length,isMessagesEmpty=messageCount===0,intl=useIntl(),[isOverflowing,setIsOverflowing]=useState(!1),[isReplyOpen,setIsReplyOpen]=useState(()=>messageCount===0);useEffect(()=>{messageCount===0&&setIsReplyOpen(!0)},[messageCount]);let handleEditorOpen=useCallback(()=>{isReplyAllowed&&(setIsReplyOpen(!0),onEditorOpen?.())},[onEditorOpen,isReplyAllowed]),handleEditorClose=useCallback(replyMode=>{if(isMessagesEmpty&&replyMode){onAnnotationsClose?.();return}setIsReplyOpen(!1),onEditorClose?.()},[onEditorClose,isMessagesEmpty,onAnnotationsClose]),handleOverflowChange=useCallback(overflowing=>{setIsOverflowing(overflowing)},[]);return jsx(MentionContextProvider,{value:{collaborationPopoverProps,getAvatarUrl,fetchCollaboratorState,fetchEmail},children:jsxs(`div`,{className:threaded_annotations_module_default.threadedAnnotations,children:[jsx(`div`,{className:clsx(threaded_annotations_module_default.messagesContainer,{[threaded_annotations_module_default.removePaddingTop]:isMessagesEmpty}),children:jsx(MessagesView,{...messagesViewOptions,onOverflowChange:handleOverflowChange})}),jsx(`div`,{className:clsx(threaded_annotations_module_default.editorContainer,{[threaded_annotations_module_default.removePaddingBottom]:!isReplyAllowed,[threaded_annotations_module_default.editorContainerWithBorder]:isOverflowing&&isReplyAllowed}),children:isReplyAllowed&&(isReplyOpen?jsx(MessageEditor,{...messageEditorOptions,messageCount,onCancel:handleEditorClose}):jsx(TextButton,{"aria-label":intl.formatMessage(messages.replyButtonAriaLabel),icon:ArrowArchedRight,onClick:handleEditorOpen,children:intl.formatMessage(messages.reply)}))})]})})};export{ThreadedAnnotations as t};