Skip to content

Commit 3469413

Browse files
authored
feat(annotations): hide AnnotationActivityLink based on hasVersions prop (#3132)
* feat(annotations): hide AnnotationActivityLink based on hasVersions prop * feat(annotation): move css definition to AnnotationActivity.scss
1 parent 8ca714b commit 3469413

File tree

7 files changed

+34
-16
lines changed

7 files changed

+34
-16
lines changed

src/elements/content-sidebar/ActivitySidebar.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,7 @@ class ActivitySidebar extends React.PureComponent<Props, State> {
975975
elementId,
976976
file,
977977
hasReplies,
978+
hasVersions,
978979
isDisabled = false,
979980
onVersionHistoryClick,
980981
getUserProfileUrl,
@@ -1006,6 +1007,7 @@ class ActivitySidebar extends React.PureComponent<Props, State> {
10061007
getMentionWithQuery={this.getMention}
10071008
getUserProfileUrl={getUserProfileUrl}
10081009
hasReplies={hasReplies}
1010+
hasVersions={hasVersions}
10091011
isDisabled={isDisabled}
10101012
mentionSelectorContacts={mentionSelectorContacts}
10111013
contactsLoaded={contactsLoaded}

src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ exports[`elements/content-sidebar/ActivitySidebar render() should render the act
5151
getAvatarUrl={[Function]}
5252
getMentionWithQuery={[Function]}
5353
hasReplies={false}
54+
hasVersions={true}
5455
isDisabled={false}
5556
onAnnotationDelete={[Function]}
5657
onAnnotationEdit={[Function]}

src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type Props = {
4747
getMentionWithQuery?: Function,
4848
getUserProfileUrl?: GetProfileUrlCallback,
4949
hasReplies?: boolean,
50+
hasVersions?: boolean,
5051
items: FeedItems,
5152
mentionSelectorContacts?: SelectorItems<>,
5253
onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,
@@ -97,6 +98,7 @@ const ActiveState = ({
9798
getMentionWithQuery,
9899
getUserProfileUrl,
99100
hasReplies = false,
101+
hasVersions,
100102
items,
101103
mentionSelectorContacts,
102104
onAnnotationDelete,
@@ -278,6 +280,7 @@ const ActiveState = ({
278280
getAvatarUrl={getAvatarUrl}
279281
getUserProfileUrl={getUserProfileUrl}
280282
getMentionWithQuery={getMentionWithQuery}
283+
hasVersions={hasVersions}
281284
isCurrentVersion={currentFileVersionId === itemFileVersionId}
282285
item={item}
283286
mentionSelectorContacts={mentionSelectorContacts}

src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type Props = {
4646
getMentionWithQuery?: Function,
4747
getUserProfileUrl?: GetProfileUrlCallback,
4848
hasReplies?: boolean,
49+
hasVersions?: boolean,
4950
isDisabled?: boolean,
5051
mentionSelectorContacts?: SelectorItems<User>,
5152
onAnnotationDelete?: ({ id: string, permissions: AnnotationPermission }) => void,
@@ -238,6 +239,7 @@ class ActivityFeed extends React.Component<Props, State> {
238239
getMentionWithQuery,
239240
getUserProfileUrl,
240241
hasReplies,
242+
hasVersions,
241243
isDisabled,
242244
mentionSelectorContacts,
243245
contactsLoaded,
@@ -322,6 +324,7 @@ class ActivityFeed extends React.Component<Props, State> {
322324
getMentionWithQuery={getMentionWithQuery}
323325
getUserProfileUrl={getUserProfileUrl}
324326
hasReplies={hasReplies}
327+
hasVersions={hasVersions}
325328
isDisabled={isDisabled}
326329
items={collapseFeedState(feedItems)}
327330
mentionSelectorContacts={mentionSelectorContacts}

src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type Props = {
3030
getAvatarUrl: GetAvatarUrlCallback,
3131
getMentionWithQuery?: (searchStr: string) => void,
3232
getUserProfileUrl?: GetProfileUrlCallback,
33+
hasVersions?: boolean,
3334
isCurrentVersion: boolean,
3435
item: Annotation,
3536
mentionSelectorContacts?: SelectorItems<User>,
@@ -45,6 +46,7 @@ const AnnotationActivity = ({
4546
getAvatarUrl,
4647
getMentionWithQuery,
4748
getUserProfileUrl,
49+
hasVersions,
4850
isCurrentVersion,
4951
mentionSelectorContacts,
5052
onDelete = noop,
@@ -78,6 +80,7 @@ const AnnotationActivity = ({
7880
setIsConfirmingDelete(false);
7981
onDelete({ id, permissions });
8082
};
83+
8184
const handleEdit = (): void => setIsEditing(true);
8285
const handleFormCancel = (): void => setIsEditing(false);
8386
const handleFormSubmit = ({ text }): void => {
@@ -146,14 +149,16 @@ const AnnotationActivity = ({
146149
</div>
147150
<div className="bcs-AnnotationActivity-timestamp">
148151
<ActivityTimestamp date={createdAtTimestamp} />
149-
<AnnotationActivityLink
150-
className="bcs-AnnotationActivity-link"
151-
data-resin-target="annotationLink"
152-
id={id}
153-
isDisabled={isFileVersionUnavailable}
154-
message={activityLinkMessage}
155-
onClick={handleSelect}
156-
/>
152+
{hasVersions && (
153+
<AnnotationActivityLink
154+
className="bcs-AnnotationActivity-link"
155+
data-resin-target="annotationLink"
156+
id={id}
157+
isDisabled={isFileVersionUnavailable}
158+
message={activityLinkMessage}
159+
onClick={handleSelect}
160+
/>
161+
)}
157162
</div>
158163
<ActivityStatus status={status} />
159164
{isEditing && currentUser ? (

src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.scss

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,13 @@
4242
.bcs-AnnotationActivity-timestamp {
4343
display: flex;
4444
white-space: nowrap;
45+
}
4546

46-
.bcs-ActivityTimestamp {
47-
&::after {
48-
margin-right: 8px;
49-
margin-left: 8px;
50-
color: $bdl-gray-50;
51-
content: '\2022';
52-
}
53-
}
47+
.bcs-AnnotationActivity-link::before {
48+
margin-right: 2 * $bdl-grid-unit;
49+
margin-left: 2 * $bdl-grid-unit;
50+
color: $bdl-gray-50;
51+
content: '\2022';
5452
}
5553

5654
// override for activity feed defaults

src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
3939
const mockActivity = {
4040
currentUser,
4141
handlers: allHandlers,
42+
hasVersions: true,
4243
isCurrentVersion: true,
4344
item: mockAnnotation,
4445
mentionSelectorContacts,
@@ -146,6 +147,11 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
146147
expect(activityLink.prop('isDisabled')).toBe(true);
147148
});
148149

150+
test('should not render file version link if hasVersions is false', () => {
151+
const wrapper = getWrapper({ hasVersions: false });
152+
expect(wrapper.exists('AnnotationActivityLink')).toBe(false);
153+
});
154+
149155
test('should render commenter as a link', () => {
150156
const wrapper = getWrapper();
151157
expect(wrapper.find('UserLink').prop('name')).toEqual(mockActivity.item.created_by.name);

0 commit comments

Comments
 (0)