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.
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +14 -14
- package/dist/openwith.js +5 -5
- package/dist/picker.js +7 -7
- package/dist/preview.css +1 -1
- package/dist/preview.js +14 -14
- package/dist/sharing.js +11 -11
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +13 -13
- package/dist/uploader.js +5 -5
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +22 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +28 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +82 -6
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +92 -4
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +68 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +87 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js +55 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/fixtures.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js +8 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +10 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
- package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
- package/i18n/bn-IN.js +17 -15
- package/i18n/bn-IN.properties +17 -15
- package/i18n/da-DK.js +17 -15
- package/i18n/da-DK.properties +17 -15
- package/i18n/de-DE.js +17 -15
- package/i18n/de-DE.properties +17 -15
- package/i18n/en-AU.js +4 -2
- package/i18n/en-AU.properties +4 -2
- package/i18n/en-CA.js +9 -7
- package/i18n/en-CA.properties +9 -7
- package/i18n/en-GB.js +4 -2
- package/i18n/en-GB.properties +4 -2
- package/i18n/en-US.js +2 -0
- package/i18n/en-US.properties +4 -0
- package/i18n/en-x-pseudo.js +876 -874
- package/i18n/en-x-pseudo.properties +875 -873
- package/i18n/es-419.js +17 -15
- package/i18n/es-419.properties +17 -15
- package/i18n/es-ES.js +17 -15
- package/i18n/es-ES.properties +17 -15
- package/i18n/fi-FI.js +17 -15
- package/i18n/fi-FI.properties +17 -15
- package/i18n/fr-CA.js +17 -15
- package/i18n/fr-CA.properties +17 -15
- package/i18n/fr-FR.js +17 -15
- package/i18n/fr-FR.properties +17 -15
- package/i18n/hi-IN.js +17 -15
- package/i18n/hi-IN.properties +17 -15
- package/i18n/it-IT.js +17 -15
- package/i18n/it-IT.properties +17 -15
- package/i18n/ja-JP.js +2 -0
- package/i18n/ja-JP.properties +2 -0
- package/i18n/ko-KR.js +17 -15
- package/i18n/ko-KR.properties +17 -15
- package/i18n/nb-NO.js +17 -15
- package/i18n/nb-NO.properties +17 -15
- package/i18n/nl-NL.js +17 -15
- package/i18n/nl-NL.properties +17 -15
- package/i18n/pl-PL.js +17 -15
- package/i18n/pl-PL.properties +17 -15
- package/i18n/pt-BR.js +17 -15
- package/i18n/pt-BR.properties +17 -15
- package/i18n/ru-RU.js +17 -15
- package/i18n/ru-RU.properties +17 -15
- package/i18n/sv-SE.js +17 -15
- package/i18n/sv-SE.properties +17 -15
- package/i18n/tr-TR.js +17 -15
- package/i18n/tr-TR.properties +17 -15
- package/i18n/zh-CN.js +17 -15
- package/i18n/zh-CN.properties +17 -15
- package/i18n/zh-TW.js +17 -15
- package/i18n/zh-TW.properties +17 -15
- package/package.json +1 -1
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +28 -2
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +92 -4
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +87 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +57 -11
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThreadReplies.test.js +24 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +12 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
9
|
-
className: "bcs-ActivityThread"
|
|
10
|
-
}, children);
|
|
59
|
+
if (!hasReplies) {
|
|
60
|
+
return children;
|
|
11
61
|
}
|
|
12
62
|
|
|
13
|
-
return
|
|
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 = ({
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
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
|
|
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
|
+
}
|