box-ui-elements 16.0.0-beta.21 → 16.0.0-beta.23

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 (90) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +14 -14
  3. package/dist/openwith.js +5 -5
  4. package/dist/picker.js +7 -7
  5. package/dist/preview.css +1 -1
  6. package/dist/preview.js +14 -14
  7. package/dist/sharing.js +11 -11
  8. package/dist/sidebar.css +1 -1
  9. package/dist/sidebar.js +13 -13
  10. package/dist/uploader.js +5 -5
  11. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +22 -2
  12. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +28 -2
  13. package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
  14. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +82 -6
  15. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +92 -4
  16. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -1
  17. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  18. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +68 -0
  19. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +87 -0
  20. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -0
  21. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  22. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js +55 -0
  23. package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js.map +1 -0
  24. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js +8 -0
  25. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +10 -0
  26. package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
  27. package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
  28. package/i18n/bn-IN.js +17 -15
  29. package/i18n/bn-IN.properties +17 -15
  30. package/i18n/da-DK.js +17 -15
  31. package/i18n/da-DK.properties +17 -15
  32. package/i18n/de-DE.js +17 -15
  33. package/i18n/de-DE.properties +17 -15
  34. package/i18n/en-AU.js +4 -2
  35. package/i18n/en-AU.properties +4 -2
  36. package/i18n/en-CA.js +9 -7
  37. package/i18n/en-CA.properties +9 -7
  38. package/i18n/en-GB.js +4 -2
  39. package/i18n/en-GB.properties +4 -2
  40. package/i18n/en-US.js +2 -0
  41. package/i18n/en-US.properties +4 -0
  42. package/i18n/en-x-pseudo.js +876 -874
  43. package/i18n/en-x-pseudo.properties +875 -873
  44. package/i18n/es-419.js +17 -15
  45. package/i18n/es-419.properties +17 -15
  46. package/i18n/es-ES.js +17 -15
  47. package/i18n/es-ES.properties +17 -15
  48. package/i18n/fi-FI.js +17 -15
  49. package/i18n/fi-FI.properties +17 -15
  50. package/i18n/fr-CA.js +17 -15
  51. package/i18n/fr-CA.properties +17 -15
  52. package/i18n/fr-FR.js +17 -15
  53. package/i18n/fr-FR.properties +17 -15
  54. package/i18n/hi-IN.js +17 -15
  55. package/i18n/hi-IN.properties +17 -15
  56. package/i18n/it-IT.js +17 -15
  57. package/i18n/it-IT.properties +17 -15
  58. package/i18n/ja-JP.js +2 -0
  59. package/i18n/ja-JP.properties +2 -0
  60. package/i18n/ko-KR.js +17 -15
  61. package/i18n/ko-KR.properties +17 -15
  62. package/i18n/nb-NO.js +17 -15
  63. package/i18n/nb-NO.properties +17 -15
  64. package/i18n/nl-NL.js +17 -15
  65. package/i18n/nl-NL.properties +17 -15
  66. package/i18n/pl-PL.js +17 -15
  67. package/i18n/pl-PL.properties +17 -15
  68. package/i18n/pt-BR.js +17 -15
  69. package/i18n/pt-BR.properties +17 -15
  70. package/i18n/ru-RU.js +17 -15
  71. package/i18n/ru-RU.properties +17 -15
  72. package/i18n/sv-SE.js +17 -15
  73. package/i18n/sv-SE.properties +17 -15
  74. package/i18n/tr-TR.js +17 -15
  75. package/i18n/tr-TR.properties +17 -15
  76. package/i18n/zh-CN.js +17 -15
  77. package/i18n/zh-CN.properties +17 -15
  78. package/i18n/zh-TW.js +17 -15
  79. package/i18n/zh-TW.properties +17 -15
  80. package/package.json +1 -1
  81. package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +28 -2
  82. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +92 -4
  83. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
  84. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +87 -0
  85. package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
  86. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +57 -11
  87. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
  88. package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +12 -0
  89. package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
  90. package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +10 -0
@@ -64,8 +64,18 @@ var ActiveState = function ActiveState(_ref) {
64
64
  isFocused: isFocused,
65
65
  ref: refValue
66
66
  }, React.createElement(ActivityThread, {
67
+ "data-testid": "activity-thread",
68
+ onReplyDelete: onCommentDelete,
69
+ onReplyEdit: onCommentEdit,
70
+ currentUser: currentUser,
71
+ getAvatarUrl: getAvatarUrl,
67
72
  hasReplies: hasReplies,
68
- "data-testid": "activity-thread"
73
+ getMentionWithQuery: getMentionWithQuery,
74
+ getUserProfileUrl: getUserProfileUrl,
75
+ mentionSelectorContacts: mentionSelectorContacts,
76
+ repliesTotalCount: item.total_reply_count,
77
+ replies: item.replies,
78
+ translations: translations
69
79
  }, React.createElement(Comment, _extends({}, item, {
70
80
  currentUser: currentUser,
71
81
  getAvatarUrl: getAvatarUrl,
@@ -135,8 +145,18 @@ var ActiveState = function ActiveState(_ref) {
135
145
  isFocused: isFocused,
136
146
  ref: refValue
137
147
  }, React.createElement(ActivityThread, {
148
+ "data-testid": "activity-thread",
149
+ onReplyDelete: onCommentDelete,
150
+ onReplyEdit: onCommentEdit,
151
+ currentUser: currentUser,
152
+ getAvatarUrl: getAvatarUrl,
153
+ getMentionWithQuery: getMentionWithQuery,
154
+ getUserProfileUrl: getUserProfileUrl,
138
155
  hasReplies: hasReplies,
139
- "data-testid": "activity-thread"
156
+ mentionSelectorContacts: mentionSelectorContacts,
157
+ repliesTotalCount: item.total_reply_count,
158
+ replies: item.replies,
159
+ translations: translations
140
160
  }, React.createElement(AnnotationActivity, {
141
161
  currentUser: currentUser,
142
162
  getAvatarUrl: getAvatarUrl,
@@ -110,7 +110,20 @@ const ActiveState = ({
110
110
  isFocused={isFocused}
111
111
  ref={refValue}
112
112
  >
113
- <ActivityThread hasReplies={hasReplies} data-testid="activity-thread">
113
+ <ActivityThread
114
+ data-testid="activity-thread"
115
+ onReplyDelete={onCommentDelete}
116
+ onReplyEdit={onCommentEdit}
117
+ currentUser={currentUser}
118
+ getAvatarUrl={getAvatarUrl}
119
+ hasReplies={hasReplies}
120
+ getMentionWithQuery={getMentionWithQuery}
121
+ getUserProfileUrl={getUserProfileUrl}
122
+ mentionSelectorContacts={mentionSelectorContacts}
123
+ repliesTotalCount={item.total_reply_count}
124
+ replies={item.replies}
125
+ translations={translations}
126
+ >
114
127
  <Comment
115
128
  {...item}
116
129
  currentUser={currentUser}
@@ -187,7 +200,20 @@ const ActiveState = ({
187
200
  isFocused={isFocused}
188
201
  ref={refValue}
189
202
  >
190
- <ActivityThread hasReplies={hasReplies} data-testid="activity-thread">
203
+ <ActivityThread
204
+ data-testid="activity-thread"
205
+ onReplyDelete={onCommentDelete}
206
+ onReplyEdit={onCommentEdit}
207
+ currentUser={currentUser}
208
+ getAvatarUrl={getAvatarUrl}
209
+ getMentionWithQuery={getMentionWithQuery}
210
+ getUserProfileUrl={getUserProfileUrl}
211
+ hasReplies={hasReplies}
212
+ mentionSelectorContacts={mentionSelectorContacts}
213
+ repliesTotalCount={item.total_reply_count}
214
+ replies={item.replies}
215
+ translations={translations}
216
+ >
191
217
  <AnnotationActivity
192
218
  currentUser={currentUser}
193
219
  getAvatarUrl={getAvatarUrl}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js"],"names":["React","getProp","ActivityThread","ActivityItem","AppActivity","AnnotationActivity","Comment","TaskNew","Version","CollapsedVersion","withErrorHandling","ActiveState","activeFeedEntryId","activeFeedEntryType","activeFeedItemRef","approverSelectorContacts","currentFileVersionId","currentUser","hasReplies","items","mentionSelectorContacts","getMentionWithQuery","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAnnotationStatusChange","onAppActivityDelete","onCommentDelete","onCommentEdit","onTaskDelete","onTaskEdit","onTaskView","onTaskAssignmentUpdate","onTaskModalClose","onVersionInfo","translations","getApproverWithQuery","getAvatarUrl","getUserProfileUrl","activeEntry","find","id","type","map","item","isFocused","refValue","undefined","itemFileVersionId","can_delete","permissions","can_edit","can_reply","can_resolve","versions","ActiveStateComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Active state component for Activity Feed\n */\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport ActivityThread from './ActivityThread';\nimport ActivityItem from './ActivityItem';\nimport AppActivity from '../app-activity';\nimport AnnotationActivity from '../annotations';\nimport Comment from '../comment';\nimport TaskNew from '../task-new';\nimport Version, { CollapsedVersion } from '../version';\nimport withErrorHandling from '../../withErrorHandling';\nimport type {\n Annotation,\n AnnotationPermission,\n BoxCommentPermission,\n FeedItem,\n FeedItems,\n FeedItemStatus,\n FocusableFeedItemType,\n} from '../../../../common/types/feed';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activeFeedItemRef: { current: null | HTMLElement },\n approverSelectorContacts?: SelectorItems<>,\n currentFileVersionId: string,\n currentUser?: User,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies?: boolean,\n items: FeedItems,\n mentionSelectorContacts?: SelectorItems<>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,\n onAppActivityDelete?: Function,\n onCommentDelete?: Function,\n onCommentEdit?: (\n id: string,\n text?: string,\n status?: FeedItemStatus,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onTaskAssignmentUpdate?: Function,\n onTaskDelete?: Function,\n onTaskEdit?: Function,\n onTaskModalClose?: Function,\n onTaskView?: Function,\n onVersionInfo?: Function,\n translations?: Translations,\n};\n\nconst ActiveState = ({\n activeFeedEntryId,\n activeFeedEntryType,\n activeFeedItemRef,\n approverSelectorContacts,\n currentFileVersionId,\n currentUser,\n hasReplies = false,\n items,\n mentionSelectorContacts,\n getMentionWithQuery,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAnnotationStatusChange,\n onAppActivityDelete,\n onCommentDelete,\n onCommentEdit,\n onTaskDelete,\n onTaskEdit,\n onTaskView,\n onTaskAssignmentUpdate,\n onTaskModalClose,\n onVersionInfo,\n translations,\n getApproverWithQuery,\n getAvatarUrl,\n getUserProfileUrl,\n}: Props): React.Node => {\n const activeEntry = items.find(({ id, type }) => id === activeFeedEntryId && type === activeFeedEntryType);\n\n return (\n <ul className=\"bcs-activity-feed-active-state\">\n {items.map((item: FeedItem) => {\n const isFocused = item === activeEntry;\n const refValue = isFocused ? activeFeedItemRef : undefined;\n const itemFileVersionId = getProp(item, 'file_version.id');\n\n switch (item.type) {\n case 'comment':\n return (\n <ActivityItem\n key={item.type + item.id}\n data-testid=\"comment\"\n isFocused={isFocused}\n ref={refValue}\n >\n <ActivityThread hasReplies={hasReplies} data-testid=\"activity-thread\">\n <Comment\n {...item}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onCommentDelete}\n onEdit={onCommentEdit}\n permissions={{\n can_delete: getProp(item.permissions, 'can_delete', false),\n can_edit: getProp(item.permissions, 'can_edit', false),\n can_reply: getProp(item.permissions, 'can_reply', false),\n can_resolve: getProp(item.permissions, 'can_resolve', false),\n }}\n translations={translations}\n />\n </ActivityThread>\n </ActivityItem>\n );\n case 'task':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-task-new\"\n data-testid=\"task\"\n isFocused={isFocused}\n ref={refValue}\n >\n <TaskNew\n {...item}\n approverSelectorContacts={approverSelectorContacts}\n currentUser={currentUser}\n getApproverWithQuery={getApproverWithQuery}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n onAssignmentUpdate={onTaskAssignmentUpdate}\n onDelete={onTaskDelete}\n onEdit={onTaskEdit}\n onView={onTaskView}\n onModalClose={onTaskModalClose}\n translations={translations}\n />\n </ActivityItem>\n );\n case 'file_version':\n return (\n <ActivityItem key={item.type + item.id} className=\"bcs-version-item\" data-testid=\"version\">\n {item.versions ? (\n // $FlowFixMe\n <CollapsedVersion {...item} onInfo={onVersionInfo} />\n ) : (\n // $FlowFixMe\n <Version {...item} onInfo={onVersionInfo} />\n )}\n </ActivityItem>\n );\n case 'app_activity':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-app-activity\"\n data-testid=\"app-activity\"\n >\n <AppActivity currentUser={currentUser} onDelete={onAppActivityDelete} {...item} />\n </ActivityItem>\n );\n case 'annotation':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-annotation-activity\"\n data-testid=\"annotation-activity\"\n isFocused={isFocused}\n ref={refValue}\n >\n <ActivityThread hasReplies={hasReplies} data-testid=\"activity-thread\">\n <AnnotationActivity\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n getMentionWithQuery={getMentionWithQuery}\n isCurrentVersion={currentFileVersionId === itemFileVersionId}\n item={item}\n mentionSelectorContacts={mentionSelectorContacts}\n onEdit={onAnnotationEdit}\n onDelete={onAnnotationDelete}\n onSelect={onAnnotationSelect}\n onStatusChange={onAnnotationStatusChange}\n />\n </ActivityThread>\n </ActivityItem>\n );\n default:\n return null;\n }\n })}\n </ul>\n );\n};\n\nexport { ActiveState as ActiveStateComponent };\nexport default withErrorHandling(ActiveState);\n"],"file":"ActiveState.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js"],"names":["React","getProp","ActivityThread","ActivityItem","AppActivity","AnnotationActivity","Comment","TaskNew","Version","CollapsedVersion","withErrorHandling","ActiveState","activeFeedEntryId","activeFeedEntryType","activeFeedItemRef","approverSelectorContacts","currentFileVersionId","currentUser","hasReplies","items","mentionSelectorContacts","getMentionWithQuery","onAnnotationDelete","onAnnotationEdit","onAnnotationSelect","onAnnotationStatusChange","onAppActivityDelete","onCommentDelete","onCommentEdit","onTaskDelete","onTaskEdit","onTaskView","onTaskAssignmentUpdate","onTaskModalClose","onVersionInfo","translations","getApproverWithQuery","getAvatarUrl","getUserProfileUrl","activeEntry","find","id","type","map","item","isFocused","refValue","undefined","itemFileVersionId","total_reply_count","replies","can_delete","permissions","can_edit","can_reply","can_resolve","versions","ActiveStateComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Active state component for Activity Feed\n */\nimport * as React from 'react';\nimport getProp from 'lodash/get';\nimport ActivityThread from './ActivityThread';\nimport ActivityItem from './ActivityItem';\nimport AppActivity from '../app-activity';\nimport AnnotationActivity from '../annotations';\nimport Comment from '../comment';\nimport TaskNew from '../task-new';\nimport Version, { CollapsedVersion } from '../version';\nimport withErrorHandling from '../../withErrorHandling';\nimport type {\n Annotation,\n AnnotationPermission,\n BoxCommentPermission,\n FeedItem,\n FeedItems,\n FeedItemStatus,\n FocusableFeedItemType,\n} from '../../../../common/types/feed';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\n\ntype Props = {\n activeFeedEntryId?: string,\n activeFeedEntryType?: FocusableFeedItemType,\n activeFeedItemRef: { current: null | HTMLElement },\n approverSelectorContacts?: SelectorItems<>,\n currentFileVersionId: string,\n currentUser?: User,\n getApproverWithQuery?: Function,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies?: boolean,\n items: FeedItems,\n mentionSelectorContacts?: SelectorItems<>,\n onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,\n onAnnotationEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,\n onAnnotationSelect?: (annotation: Annotation) => void,\n onAnnotationStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,\n onAppActivityDelete?: Function,\n onCommentDelete?: Function,\n onCommentEdit?: (\n id: string,\n text?: string,\n status?: FeedItemStatus,\n hasMention: boolean,\n permissions: BoxCommentPermission,\n onSuccess: ?Function,\n onError: ?Function,\n ) => void,\n onTaskAssignmentUpdate?: Function,\n onTaskDelete?: Function,\n onTaskEdit?: Function,\n onTaskModalClose?: Function,\n onTaskView?: Function,\n onVersionInfo?: Function,\n translations?: Translations,\n};\n\nconst ActiveState = ({\n activeFeedEntryId,\n activeFeedEntryType,\n activeFeedItemRef,\n approverSelectorContacts,\n currentFileVersionId,\n currentUser,\n hasReplies = false,\n items,\n mentionSelectorContacts,\n getMentionWithQuery,\n onAnnotationDelete,\n onAnnotationEdit,\n onAnnotationSelect,\n onAnnotationStatusChange,\n onAppActivityDelete,\n onCommentDelete,\n onCommentEdit,\n onTaskDelete,\n onTaskEdit,\n onTaskView,\n onTaskAssignmentUpdate,\n onTaskModalClose,\n onVersionInfo,\n translations,\n getApproverWithQuery,\n getAvatarUrl,\n getUserProfileUrl,\n}: Props): React.Node => {\n const activeEntry = items.find(({ id, type }) => id === activeFeedEntryId && type === activeFeedEntryType);\n\n return (\n <ul className=\"bcs-activity-feed-active-state\">\n {items.map((item: FeedItem) => {\n const isFocused = item === activeEntry;\n const refValue = isFocused ? activeFeedItemRef : undefined;\n const itemFileVersionId = getProp(item, 'file_version.id');\n\n switch (item.type) {\n case 'comment':\n return (\n <ActivityItem\n key={item.type + item.id}\n data-testid=\"comment\"\n isFocused={isFocused}\n ref={refValue}\n >\n <ActivityThread\n data-testid=\"activity-thread\"\n onReplyDelete={onCommentDelete}\n onReplyEdit={onCommentEdit}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n hasReplies={hasReplies}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n repliesTotalCount={item.total_reply_count}\n replies={item.replies}\n translations={translations}\n >\n <Comment\n {...item}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onCommentDelete}\n onEdit={onCommentEdit}\n permissions={{\n can_delete: getProp(item.permissions, 'can_delete', false),\n can_edit: getProp(item.permissions, 'can_edit', false),\n can_reply: getProp(item.permissions, 'can_reply', false),\n can_resolve: getProp(item.permissions, 'can_resolve', false),\n }}\n translations={translations}\n />\n </ActivityThread>\n </ActivityItem>\n );\n case 'task':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-task-new\"\n data-testid=\"task\"\n isFocused={isFocused}\n ref={refValue}\n >\n <TaskNew\n {...item}\n approverSelectorContacts={approverSelectorContacts}\n currentUser={currentUser}\n getApproverWithQuery={getApproverWithQuery}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n onAssignmentUpdate={onTaskAssignmentUpdate}\n onDelete={onTaskDelete}\n onEdit={onTaskEdit}\n onView={onTaskView}\n onModalClose={onTaskModalClose}\n translations={translations}\n />\n </ActivityItem>\n );\n case 'file_version':\n return (\n <ActivityItem key={item.type + item.id} className=\"bcs-version-item\" data-testid=\"version\">\n {item.versions ? (\n // $FlowFixMe\n <CollapsedVersion {...item} onInfo={onVersionInfo} />\n ) : (\n // $FlowFixMe\n <Version {...item} onInfo={onVersionInfo} />\n )}\n </ActivityItem>\n );\n case 'app_activity':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-app-activity\"\n data-testid=\"app-activity\"\n >\n <AppActivity currentUser={currentUser} onDelete={onAppActivityDelete} {...item} />\n </ActivityItem>\n );\n case 'annotation':\n return (\n <ActivityItem\n key={item.type + item.id}\n className=\"bcs-activity-feed-annotation-activity\"\n data-testid=\"annotation-activity\"\n isFocused={isFocused}\n ref={refValue}\n >\n <ActivityThread\n data-testid=\"activity-thread\"\n onReplyDelete={onCommentDelete}\n onReplyEdit={onCommentEdit}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n hasReplies={hasReplies}\n mentionSelectorContacts={mentionSelectorContacts}\n repliesTotalCount={item.total_reply_count}\n replies={item.replies}\n translations={translations}\n >\n <AnnotationActivity\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getUserProfileUrl={getUserProfileUrl}\n getMentionWithQuery={getMentionWithQuery}\n isCurrentVersion={currentFileVersionId === itemFileVersionId}\n item={item}\n mentionSelectorContacts={mentionSelectorContacts}\n onEdit={onAnnotationEdit}\n onDelete={onAnnotationDelete}\n onSelect={onAnnotationSelect}\n onStatusChange={onAnnotationStatusChange}\n />\n </ActivityThread>\n </ActivityItem>\n );\n default:\n return null;\n }\n })}\n </ul>\n );\n};\n\nexport { ActiveState as ActiveStateComponent };\nexport default withErrorHandling(ActiveState);\n"],"file":"ActiveState.js"}
@@ -1,16 +1,92 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
4
+
5
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
6
+
7
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8
+
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+
1
11
  import * as React from 'react';
12
+ import { FormattedMessage } from 'react-intl';
13
+ import noop from 'lodash/noop';
14
+ import LoadingIndicator from '../../../../components/loading-indicator';
15
+ import PlainButton from '../../../../components/plain-button';
16
+ import ActivityThreadReplies from './ActivityThreadReplies';
17
+ import messages from './messages';
18
+ import './ActivityThread.scss';
2
19
 
3
20
  var ActivityThread = function ActivityThread(_ref) {
4
21
  var children = _ref.children,
5
- hasReplies = _ref.hasReplies;
22
+ currentUser = _ref.currentUser,
23
+ getAvatarUrl = _ref.getAvatarUrl,
24
+ getMentionWithQuery = _ref.getMentionWithQuery,
25
+ getUserProfileUrl = _ref.getUserProfileUrl,
26
+ hasReplies = _ref.hasReplies,
27
+ isRepliesLoading = _ref.isRepliesLoading,
28
+ mentionSelectorContacts = _ref.mentionSelectorContacts,
29
+ _ref$onGetReplies = _ref.onGetReplies,
30
+ onGetReplies = _ref$onGetReplies === void 0 ? noop : _ref$onGetReplies,
31
+ _ref$onReplyDelete = _ref.onReplyDelete,
32
+ onReplyDelete = _ref$onReplyDelete === void 0 ? noop : _ref$onReplyDelete,
33
+ _ref$onReplyEdit = _ref.onReplyEdit,
34
+ onReplyEdit = _ref$onReplyEdit === void 0 ? noop : _ref$onReplyEdit,
35
+ _ref$replies = _ref.replies,
36
+ replies = _ref$replies === void 0 ? [] : _ref$replies,
37
+ _ref$repliesTotalCoun = _ref.repliesTotalCount,
38
+ repliesTotalCount = _ref$repliesTotalCoun === void 0 ? 0 : _ref$repliesTotalCoun,
39
+ translations = _ref.translations;
40
+
41
+ var _React$useState = React.useState(false),
42
+ _React$useState2 = _slicedToArray(_React$useState, 2),
43
+ isExpanded = _React$useState2[0],
44
+ setIsExpanded = _React$useState2[1];
45
+
46
+ var toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
47
+ var repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
48
+
49
+ var toggleReplies = function toggleReplies() {
50
+ if (!isExpanded) {
51
+ onGetReplies();
52
+ }
53
+
54
+ setIsExpanded(function (previousState) {
55
+ return !previousState;
56
+ });
57
+ };
6
58
 
7
- if (hasReplies) {
8
- return React.createElement("div", {
9
- className: "bcs-ActivityThread"
10
- }, children);
59
+ if (!hasReplies) {
60
+ return children;
11
61
  }
12
62
 
13
- return children;
63
+ return React.createElement("div", {
64
+ className: "bcs-ActivityThread",
65
+ "data-testid": "activity-thread"
66
+ }, children, isRepliesLoading && React.createElement("div", {
67
+ className: "bcs-ActivityThread-loading",
68
+ "data-testid": "activity-thread-loading"
69
+ }, React.createElement(LoadingIndicator, null)), !isRepliesLoading && repliesTotalCount > 1 && React.createElement(PlainButton, {
70
+ className: "bcs-ActivityThread-toggle",
71
+ onClick: toggleReplies,
72
+ type: "button",
73
+ "data-testid": "activity-thread-button"
74
+ }, React.createElement(FormattedMessage, _extends({
75
+ values: {
76
+ repliesToLoadCount: repliesToLoadCount
77
+ }
78
+ }, toggleButtonLabel))), !isRepliesLoading && repliesTotalCount > 0 && replies.length && React.createElement(ActivityThreadReplies, {
79
+ currentUser: currentUser,
80
+ getAvatarUrl: getAvatarUrl,
81
+ getMentionWithQuery: getMentionWithQuery,
82
+ getUserProfileUrl: getUserProfileUrl,
83
+ isExpanded: isExpanded,
84
+ mentionSelectorContacts: mentionSelectorContacts,
85
+ onDelete: onReplyDelete,
86
+ onEdit: onReplyEdit,
87
+ replies: replies,
88
+ translations: translations
89
+ }));
14
90
  };
15
91
 
16
92
  export default ActivityThread;
@@ -1,16 +1,104 @@
1
1
  // @flow
2
2
  import * as React from 'react';
3
+ import { FormattedMessage } from 'react-intl';
4
+ import noop from 'lodash/noop';
5
+
6
+ import LoadingIndicator from '../../../../components/loading-indicator';
7
+ import PlainButton from '../../../../components/plain-button';
8
+ import ActivityThreadReplies from './ActivityThreadReplies';
9
+
10
+ import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
11
+ import type { Translations } from '../../flowTypes';
12
+ import type { SelectorItems, User } from '../../../../common/types/core';
13
+ import type { Comment as CommentType } from '../../../../common/types/feed';
14
+
15
+ import messages from './messages';
16
+ import './ActivityThread.scss';
3
17
 
4
18
  type Props = {
5
19
  children: React.Node,
20
+ currentUser?: User,
21
+ getAvatarUrl: GetAvatarUrlCallback,
22
+ getMentionWithQuery?: Function,
23
+ getUserProfileUrl?: GetProfileUrlCallback,
6
24
  hasReplies: boolean,
25
+ isRepliesLoading?: boolean,
26
+ mentionSelectorContacts?: SelectorItems<>,
27
+ onGetReplies?: () => void,
28
+ onReplyDelete?: Function,
29
+ onReplyEdit?: Function,
30
+ replies?: Array<CommentType>,
31
+ repliesTotalCount?: number,
32
+ translations?: Translations,
7
33
  };
8
34
 
9
- const ActivityThread = ({ children, hasReplies }: Props) => {
10
- if (hasReplies) {
11
- return <div className="bcs-ActivityThread">{children}</div>;
35
+ const ActivityThread = ({
36
+ children,
37
+ currentUser,
38
+ getAvatarUrl,
39
+ getMentionWithQuery,
40
+ getUserProfileUrl,
41
+ hasReplies,
42
+ isRepliesLoading,
43
+ mentionSelectorContacts,
44
+ onGetReplies = noop,
45
+ onReplyDelete = noop,
46
+ onReplyEdit = noop,
47
+ replies = [],
48
+ repliesTotalCount = 0,
49
+ translations,
50
+ }: Props) => {
51
+ const [isExpanded, setIsExpanded] = React.useState(false);
52
+
53
+ const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;
54
+ const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);
55
+
56
+ const toggleReplies = () => {
57
+ if (!isExpanded) {
58
+ onGetReplies();
59
+ }
60
+ setIsExpanded(previousState => !previousState);
61
+ };
62
+
63
+ if (!hasReplies) {
64
+ return children;
12
65
  }
13
- return children;
66
+ return (
67
+ <div className="bcs-ActivityThread" data-testid="activity-thread">
68
+ {children}
69
+
70
+ {isRepliesLoading && (
71
+ <div className="bcs-ActivityThread-loading" data-testid="activity-thread-loading">
72
+ <LoadingIndicator />
73
+ </div>
74
+ )}
75
+ {!isRepliesLoading && repliesTotalCount > 1 && (
76
+ <PlainButton
77
+ className="bcs-ActivityThread-toggle"
78
+ onClick={toggleReplies}
79
+ type="button"
80
+ data-testid="activity-thread-button"
81
+ >
82
+ <FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />
83
+ </PlainButton>
84
+ )}
85
+
86
+ {!isRepliesLoading && repliesTotalCount > 0 && replies.length && (
87
+ <ActivityThreadReplies
88
+ currentUser={currentUser}
89
+ getAvatarUrl={getAvatarUrl}
90
+ getMentionWithQuery={getMentionWithQuery}
91
+ getUserProfileUrl={getUserProfileUrl}
92
+ isExpanded={isExpanded}
93
+ mentionSelectorContacts={mentionSelectorContacts}
94
+ onDelete={onReplyDelete}
95
+ onEdit={onReplyEdit}
96
+ replies={replies}
97
+ translations={translations}
98
+ />
99
+ )}
100
+ </div>
101
+ );
14
102
  };
15
103
 
16
104
  export default ActivityThread;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js"],"names":["React","ActivityThread","children","hasReplies"],"mappings":"AACA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;;AAOA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAAqC;AAAA,MAAlCC,QAAkC,QAAlCA,QAAkC;AAAA,MAAxBC,UAAwB,QAAxBA,UAAwB;;AACxD,MAAIA,UAAJ,EAAgB;AACZ,WAAO;AAAK,MAAA,SAAS,EAAC;AAAf,OAAqCD,QAArC,CAAP;AACH;;AACD,SAAOA,QAAP;AACH,CALD;;AAOA,eAAeD,cAAf","sourcesContent":["// @flow\nimport * as React from 'react';\n\ntype Props = {\n children: React.Node,\n hasReplies: boolean,\n};\n\nconst ActivityThread = ({ children, hasReplies }: Props) => {\n if (hasReplies) {\n return <div className=\"bcs-ActivityThread\">{children}</div>;\n }\n return children;\n};\n\nexport default ActivityThread;\n"],"file":"ActivityThread.js"}
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js"],"names":["React","FormattedMessage","noop","LoadingIndicator","PlainButton","ActivityThreadReplies","messages","ActivityThread","children","currentUser","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","hasReplies","isRepliesLoading","mentionSelectorContacts","onGetReplies","onReplyDelete","onReplyEdit","replies","repliesTotalCount","translations","useState","isExpanded","setIsExpanded","toggleButtonLabel","hideReplies","showReplies","repliesToLoadCount","Math","max","toggleReplies","previousState","length"],"mappings":"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","sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport noop from 'lodash/noop';\n\nimport LoadingIndicator from '../../../../components/loading-indicator';\nimport PlainButton from '../../../../components/plain-button';\nimport ActivityThreadReplies from './ActivityThreadReplies';\n\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { Comment as CommentType } from '../../../../common/types/feed';\n\nimport messages from './messages';\nimport './ActivityThread.scss';\n\ntype Props = {\n children: React.Node,\n currentUser?: User,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n hasReplies: boolean,\n isRepliesLoading?: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onGetReplies?: () => void,\n onReplyDelete?: Function,\n onReplyEdit?: Function,\n replies?: Array<CommentType>,\n repliesTotalCount?: number,\n translations?: Translations,\n};\n\nconst ActivityThread = ({\n children,\n currentUser,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n hasReplies,\n isRepliesLoading,\n mentionSelectorContacts,\n onGetReplies = noop,\n onReplyDelete = noop,\n onReplyEdit = noop,\n replies = [],\n repliesTotalCount = 0,\n translations,\n}: Props) => {\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n const toggleButtonLabel = isExpanded ? messages.hideReplies : messages.showReplies;\n const repliesToLoadCount = Math.max(repliesTotalCount - 1, 0);\n\n const toggleReplies = () => {\n if (!isExpanded) {\n onGetReplies();\n }\n setIsExpanded(previousState => !previousState);\n };\n\n if (!hasReplies) {\n return children;\n }\n return (\n <div className=\"bcs-ActivityThread\" data-testid=\"activity-thread\">\n {children}\n\n {isRepliesLoading && (\n <div className=\"bcs-ActivityThread-loading\" data-testid=\"activity-thread-loading\">\n <LoadingIndicator />\n </div>\n )}\n {!isRepliesLoading && repliesTotalCount > 1 && (\n <PlainButton\n className=\"bcs-ActivityThread-toggle\"\n onClick={toggleReplies}\n type=\"button\"\n data-testid=\"activity-thread-button\"\n >\n <FormattedMessage values={{ repliesToLoadCount }} {...toggleButtonLabel} />\n </PlainButton>\n )}\n\n {!isRepliesLoading && repliesTotalCount > 0 && replies.length && (\n <ActivityThreadReplies\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n isExpanded={isExpanded}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onReplyDelete}\n onEdit={onReplyEdit}\n replies={replies}\n translations={translations}\n />\n )}\n </div>\n );\n};\n\nexport default ActivityThread;\n"],"file":"ActivityThread.js"}
@@ -0,0 +1,17 @@
1
+ @import '../../../common/variables';
2
+
3
+ .bcs-ActivityThread-toggle {
4
+ margin-left: $sidebarActivityFeedSpacingHorizontal;
5
+ color: $bdl-box-blue;
6
+ font-weight: bold;
7
+
8
+ &:hover,
9
+ &:active {
10
+ margin-left: $sidebarActivityFeedSpacingHorizontal;
11
+ font-weight: bold;
12
+ }
13
+ }
14
+
15
+ .bcs-ActivityThread-loading {
16
+ padding-bottom: $bdl-grid-unit * 5;
17
+ }
@@ -0,0 +1,68 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import Comment from '../comment';
5
+ import './ActivityThreadReplies.scss';
6
+
7
+ var ActivityThreadReplies = function ActivityThreadReplies(_ref) {
8
+ var currentUser = _ref.currentUser,
9
+ getAvatarUrl = _ref.getAvatarUrl,
10
+ getMentionWithQuery = _ref.getMentionWithQuery,
11
+ getUserProfileUrl = _ref.getUserProfileUrl,
12
+ isExpanded = _ref.isExpanded,
13
+ mentionSelectorContacts = _ref.mentionSelectorContacts,
14
+ onDelete = _ref.onDelete,
15
+ onEdit = _ref.onEdit,
16
+ replies = _ref.replies,
17
+ translations = _ref.translations;
18
+ var lastReply = replies[replies.length - 1];
19
+
20
+ var getReplyPermissions = function getReplyPermissions(reply) {
21
+ var _reply$permissions = reply.permissions,
22
+ _reply$permissions$ca = _reply$permissions.can_delete,
23
+ can_delete = _reply$permissions$ca === void 0 ? false : _reply$permissions$ca,
24
+ _reply$permissions$ca2 = _reply$permissions.can_edit,
25
+ can_edit = _reply$permissions$ca2 === void 0 ? false : _reply$permissions$ca2,
26
+ _reply$permissions$ca3 = _reply$permissions.can_resolve,
27
+ can_resolve = _reply$permissions$ca3 === void 0 ? false : _reply$permissions$ca3;
28
+ return {
29
+ can_delete: can_delete,
30
+ can_edit: can_edit,
31
+ can_resolve: can_resolve
32
+ };
33
+ };
34
+
35
+ return React.createElement("div", {
36
+ className: "bcs-ActivityThreadReplies",
37
+ "data-testid": "activity-thread-replies"
38
+ }, !isExpanded ? React.createElement(Comment, _extends({
39
+ key: lastReply.type + lastReply.id
40
+ }, lastReply, {
41
+ currentUser: currentUser,
42
+ getAvatarUrl: getAvatarUrl,
43
+ getMentionWithQuery: getMentionWithQuery,
44
+ getUserProfileUrl: getUserProfileUrl,
45
+ mentionSelectorContacts: mentionSelectorContacts,
46
+ onDelete: onDelete,
47
+ onEdit: onEdit,
48
+ permissions: getReplyPermissions(lastReply),
49
+ translations: translations
50
+ })) : replies.map(function (reply) {
51
+ return React.createElement(Comment, _extends({
52
+ key: reply.type + reply.id
53
+ }, reply, {
54
+ currentUser: currentUser,
55
+ getAvatarUrl: getAvatarUrl,
56
+ getMentionWithQuery: getMentionWithQuery,
57
+ getUserProfileUrl: getUserProfileUrl,
58
+ mentionSelectorContacts: mentionSelectorContacts,
59
+ onDelete: onDelete,
60
+ onEdit: onEdit,
61
+ permissions: getReplyPermissions(reply),
62
+ translations: translations
63
+ }));
64
+ }));
65
+ };
66
+
67
+ export default ActivityThreadReplies;
68
+ //# sourceMappingURL=ActivityThreadReplies.js.map
@@ -0,0 +1,87 @@
1
+ // @flow
2
+ import React from 'react';
3
+ import Comment from '../comment';
4
+
5
+ import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
6
+ import type { Translations } from '../../flowTypes';
7
+ import type { SelectorItems, User } from '../../../../common/types/core';
8
+ import type { BoxCommentPermission, Comment as CommentType } from '../../../../common/types/feed';
9
+
10
+ import './ActivityThreadReplies.scss';
11
+
12
+ type Props = {
13
+ currentUser?: User,
14
+ getAvatarUrl: GetAvatarUrlCallback,
15
+ getMentionWithQuery?: Function,
16
+ getUserProfileUrl?: GetProfileUrlCallback,
17
+ isExpanded: boolean,
18
+ mentionSelectorContacts?: SelectorItems<>,
19
+ onDelete?: Function,
20
+ onEdit?: Function,
21
+ replies: Array<CommentType>,
22
+ translations?: Translations,
23
+ };
24
+
25
+ const ActivityThreadReplies = ({
26
+ currentUser,
27
+ getAvatarUrl,
28
+ getMentionWithQuery,
29
+ getUserProfileUrl,
30
+ isExpanded,
31
+ mentionSelectorContacts,
32
+ onDelete,
33
+ onEdit,
34
+ replies,
35
+ translations,
36
+ }: Props) => {
37
+ const lastReply = replies[replies.length - 1];
38
+
39
+ const getReplyPermissions = (reply: CommentType): BoxCommentPermission => {
40
+ const {
41
+ permissions: { can_delete = false, can_edit = false, can_resolve = false },
42
+ } = reply;
43
+ return {
44
+ can_delete,
45
+ can_edit,
46
+ can_resolve,
47
+ };
48
+ };
49
+
50
+ return (
51
+ <div className="bcs-ActivityThreadReplies" data-testid="activity-thread-replies">
52
+ {!isExpanded ? (
53
+ <Comment
54
+ key={lastReply.type + lastReply.id}
55
+ {...lastReply}
56
+ currentUser={currentUser}
57
+ getAvatarUrl={getAvatarUrl}
58
+ getMentionWithQuery={getMentionWithQuery}
59
+ getUserProfileUrl={getUserProfileUrl}
60
+ mentionSelectorContacts={mentionSelectorContacts}
61
+ onDelete={onDelete}
62
+ onEdit={onEdit}
63
+ permissions={getReplyPermissions(lastReply)}
64
+ translations={translations}
65
+ />
66
+ ) : (
67
+ replies.map((reply: CommentType) => (
68
+ <Comment
69
+ key={reply.type + reply.id}
70
+ {...reply}
71
+ currentUser={currentUser}
72
+ getAvatarUrl={getAvatarUrl}
73
+ getMentionWithQuery={getMentionWithQuery}
74
+ getUserProfileUrl={getUserProfileUrl}
75
+ mentionSelectorContacts={mentionSelectorContacts}
76
+ onDelete={onDelete}
77
+ onEdit={onEdit}
78
+ permissions={getReplyPermissions(reply)}
79
+ translations={translations}
80
+ />
81
+ ))
82
+ )}
83
+ </div>
84
+ );
85
+ };
86
+
87
+ export default ActivityThreadReplies;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js"],"names":["React","Comment","ActivityThreadReplies","currentUser","getAvatarUrl","getMentionWithQuery","getUserProfileUrl","isExpanded","mentionSelectorContacts","onDelete","onEdit","replies","translations","lastReply","length","getReplyPermissions","reply","permissions","can_delete","can_edit","can_resolve","type","id","map"],"mappings":";;AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,OAAP,MAAoB,YAApB;AAOA,OAAO,8BAAP;;AAeA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,OAWjB;AAAA,MAVTC,WAUS,QAVTA,WAUS;AAAA,MATTC,YASS,QATTA,YASS;AAAA,MARTC,mBAQS,QARTA,mBAQS;AAAA,MAPTC,iBAOS,QAPTA,iBAOS;AAAA,MANTC,UAMS,QANTA,UAMS;AAAA,MALTC,uBAKS,QALTA,uBAKS;AAAA,MAJTC,QAIS,QAJTA,QAIS;AAAA,MAHTC,MAGS,QAHTA,MAGS;AAAA,MAFTC,OAES,QAFTA,OAES;AAAA,MADTC,YACS,QADTA,YACS;AACT,MAAMC,SAAS,GAAGF,OAAO,CAACA,OAAO,CAACG,MAAR,GAAiB,CAAlB,CAAzB;;AAEA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAA8C;AAAA,6BAGlEA,KAHkE,CAElEC,WAFkE;AAAA,mDAEnDC,UAFmD;AAAA,QAEnDA,UAFmD,sCAEtC,KAFsC;AAAA,oDAE/BC,QAF+B;AAAA,QAE/BA,QAF+B,uCAEpB,KAFoB;AAAA,oDAEbC,WAFa;AAAA,QAEbA,WAFa,uCAEC,KAFD;AAItE,WAAO;AACHF,MAAAA,UAAU,EAAVA,UADG;AAEHC,MAAAA,QAAQ,EAARA,QAFG;AAGHC,MAAAA,WAAW,EAAXA;AAHG,KAAP;AAKH,GATD;;AAWA,SACI;AAAK,IAAA,SAAS,EAAC,2BAAf;AAA2C,mBAAY;AAAvD,KACK,CAACb,UAAD,GACG,oBAAC,OAAD;AACI,IAAA,GAAG,EAAEM,SAAS,CAACQ,IAAV,GAAiBR,SAAS,CAACS;AADpC,KAEQT,SAFR;AAGI,IAAA,WAAW,EAAEV,WAHjB;AAII,IAAA,YAAY,EAAEC,YAJlB;AAKI,IAAA,mBAAmB,EAAEC,mBALzB;AAMI,IAAA,iBAAiB,EAAEC,iBANvB;AAOI,IAAA,uBAAuB,EAAEE,uBAP7B;AAQI,IAAA,QAAQ,EAAEC,QARd;AASI,IAAA,MAAM,EAAEC,MATZ;AAUI,IAAA,WAAW,EAAEK,mBAAmB,CAACF,SAAD,CAVpC;AAWI,IAAA,YAAY,EAAED;AAXlB,KADH,GAeGD,OAAO,CAACY,GAAR,CAAY,UAACP,KAAD;AAAA,WACR,oBAAC,OAAD;AACI,MAAA,GAAG,EAAEA,KAAK,CAACK,IAAN,GAAaL,KAAK,CAACM;AAD5B,OAEQN,KAFR;AAGI,MAAA,WAAW,EAAEb,WAHjB;AAII,MAAA,YAAY,EAAEC,YAJlB;AAKI,MAAA,mBAAmB,EAAEC,mBALzB;AAMI,MAAA,iBAAiB,EAAEC,iBANvB;AAOI,MAAA,uBAAuB,EAAEE,uBAP7B;AAQI,MAAA,QAAQ,EAAEC,QARd;AASI,MAAA,MAAM,EAAEC,MATZ;AAUI,MAAA,WAAW,EAAEK,mBAAmB,CAACC,KAAD,CAVpC;AAWI,MAAA,YAAY,EAAEJ;AAXlB,OADQ;AAAA,GAAZ,CAhBR,CADJ;AAmCH,CA5DD;;AA8DA,eAAeV,qBAAf","sourcesContent":["// @flow\nimport React from 'react';\nimport Comment from '../comment';\n\nimport type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';\nimport type { Translations } from '../../flowTypes';\nimport type { SelectorItems, User } from '../../../../common/types/core';\nimport type { BoxCommentPermission, Comment as CommentType } from '../../../../common/types/feed';\n\nimport './ActivityThreadReplies.scss';\n\ntype Props = {\n currentUser?: User,\n getAvatarUrl: GetAvatarUrlCallback,\n getMentionWithQuery?: Function,\n getUserProfileUrl?: GetProfileUrlCallback,\n isExpanded: boolean,\n mentionSelectorContacts?: SelectorItems<>,\n onDelete?: Function,\n onEdit?: Function,\n replies: Array<CommentType>,\n translations?: Translations,\n};\n\nconst ActivityThreadReplies = ({\n currentUser,\n getAvatarUrl,\n getMentionWithQuery,\n getUserProfileUrl,\n isExpanded,\n mentionSelectorContacts,\n onDelete,\n onEdit,\n replies,\n translations,\n}: Props) => {\n const lastReply = replies[replies.length - 1];\n\n const getReplyPermissions = (reply: CommentType): BoxCommentPermission => {\n const {\n permissions: { can_delete = false, can_edit = false, can_resolve = false },\n } = reply;\n return {\n can_delete,\n can_edit,\n can_resolve,\n };\n };\n\n return (\n <div className=\"bcs-ActivityThreadReplies\" data-testid=\"activity-thread-replies\">\n {!isExpanded ? (\n <Comment\n key={lastReply.type + lastReply.id}\n {...lastReply}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onDelete}\n onEdit={onEdit}\n permissions={getReplyPermissions(lastReply)}\n translations={translations}\n />\n ) : (\n replies.map((reply: CommentType) => (\n <Comment\n key={reply.type + reply.id}\n {...reply}\n currentUser={currentUser}\n getAvatarUrl={getAvatarUrl}\n getMentionWithQuery={getMentionWithQuery}\n getUserProfileUrl={getUserProfileUrl}\n mentionSelectorContacts={mentionSelectorContacts}\n onDelete={onDelete}\n onEdit={onEdit}\n permissions={getReplyPermissions(reply)}\n translations={translations}\n />\n ))\n )}\n </div>\n );\n};\n\nexport default ActivityThreadReplies;\n"],"file":"ActivityThreadReplies.js"}
@@ -0,0 +1,16 @@
1
+ @import '../../../common/variables';
2
+
3
+ .bcs-ActivityThreadReplies {
4
+ position: relative;
5
+ padding-left: $sidebarActivityFeedSpacingHorizontal;
6
+
7
+ &::before {
8
+ position: absolute;
9
+ top: $sidebarActivityFeedSpacingVertical;
10
+ bottom: $sidebarActivityFeedSpacingVertical;
11
+ left: $sidebarActivityFeedSpacingHorizontal;
12
+ width: 4px;
13
+ background: $bdl-gray-10;
14
+ content: '';
15
+ }
16
+ }