Skip to content

Commit 07f5fc7

Browse files
feat(content-sidebar): hide "edited" for resolved comment/annotation (#3152)
1 parent 8f75827 commit 07f5fc7

File tree

4 files changed

+41
-9
lines changed

4 files changed

+41
-9
lines changed

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import messages from './messages';
1818
import SelectableActivityCard from '../SelectableActivityCard';
1919
import UserLink from '../common/user-link';
2020
import { ACTIVITY_TARGETS } from '../../../common/interactionTargets';
21-
import { PLACEHOLDER_USER } from '../../../../constants';
21+
import { COMMENT_STATUS_RESOLVED, PLACEHOLDER_USER } from '../../../../constants';
2222
import type { Annotation, AnnotationPermission, FeedItemStatus } from '../../../../common/types/feed';
2323
import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
2424
import type { SelectorItems, User } from '../../../../common/types/core';
@@ -65,14 +65,17 @@ const AnnotationActivity = ({
6565
file_version,
6666
id,
6767
isPending,
68+
modified_at,
6869
permissions = {},
6970
status,
7071
target,
7172
} = item;
7273
const { can_delete: canDelete, can_edit: canEdit, can_resolve: canResolve } = permissions;
74+
const isEdited = modified_at !== undefined && modified_at !== created_at;
7375
const isFileVersionUnavailable = file_version === null;
7476
const isCardDisabled = !!error || isConfirmingDelete || isMenuOpen || isEditing || isFileVersionUnavailable;
7577
const isMenuVisible = (canDelete || canEdit || canResolve) && !isPending;
78+
const isResolved = status === COMMENT_STATUS_RESOLVED;
7679

7780
const handleDelete = (): void => setIsConfirmingDelete(true);
7881
const handleDeleteCancel = (): void => setIsConfirmingDelete(false);
@@ -176,7 +179,12 @@ const AnnotationActivity = ({
176179
tagged_message={message}
177180
/>
178181
) : (
179-
<ActivityMessage id={id} tagged_message={message} getUserProfileUrl={getUserProfileUrl} />
182+
<ActivityMessage
183+
getUserProfileUrl={getUserProfileUrl}
184+
id={id}
185+
isEdited={isEdited && !isResolved}
186+
tagged_message={message}
187+
/>
180188
)}
181189
</Media.Body>
182190
</Media>

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const currentUser = {
1717
};
1818
const mentionSelectorContacts = [];
1919
const TIME_STRING_SEPT_27_2017 = '2017-09-27T10:40:41-07:00';
20+
const TIME_STRING_SEPT_28_2017 = '2017-09-28T10:40:41-07:00';
2021

2122
const allHandlers = {
2223
contacts: {
@@ -215,6 +216,25 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
215216
expect(onActionSpy).toHaveBeenCalledTimes(1);
216217
});
217218

219+
test.each`
220+
created_at | modified_at | status | expectedIsEdited
221+
${TIME_STRING_SEPT_27_2017} | ${undefined} | ${'open'} | ${false}
222+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_27_2017} | ${'open'} | ${false}
223+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_28_2017} | ${'open'} | ${true}
224+
${TIME_STRING_SEPT_27_2017} | ${undefined} | ${'resolved'} | ${false}
225+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_27_2017} | ${'resolved'} | ${false}
226+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_28_2017} | ${'resolved'} | ${false}
227+
`(
228+
`given created_at = $created_at, modified_at = $modified_at and status = $status, isEdited prop on ActivityMessage should be: $expectedIsEdited`,
229+
({ created_at, modified_at, status, expectedIsEdited }) => {
230+
const wrapper = getWrapper({ item: { ...mockAnnotation, created_at, modified_at, status } });
231+
232+
expect(wrapper.find('ForwardRef(withFeatureConsumer(ActivityMessage))').prop('isEdited')).toEqual(
233+
expectedIsEdited,
234+
);
235+
},
236+
);
237+
218238
describe('delete confirmation behavior', () => {
219239
test('should render the DeleteConfirmation when delete menu item is selected', () => {
220240
const item = {

src/elements/content-sidebar/activity-feed/comment/Comment.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ class Comment extends React.Component<Props, State> {
253253
) : (
254254
<ActivityMessage
255255
id={id}
256-
isEdited={isEdited}
256+
isEdited={isEdited && !isResolved}
257257
tagged_message={tagged_message}
258258
translatedTaggedMessage={translatedTaggedMessage}
259259
{...translations}

src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -385,13 +385,16 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
385385
});
386386

387387
test.each`
388-
created_at | modified_at | expectedIsEdited
389-
${TIME_STRING_SEPT_27_2017} | ${undefined} | ${false}
390-
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_27_2017} | ${false}
391-
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_28_2017} | ${true}
388+
created_at | modified_at | status | expectedIsEdited
389+
${TIME_STRING_SEPT_27_2017} | ${undefined} | ${'open'} | ${false}
390+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_27_2017} | ${'open'} | ${false}
391+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_28_2017} | ${'open'} | ${true}
392+
${TIME_STRING_SEPT_27_2017} | ${undefined} | ${'resolved'} | ${false}
393+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_27_2017} | ${'resolved'} | ${false}
394+
${TIME_STRING_SEPT_27_2017} | ${TIME_STRING_SEPT_28_2017} | ${'resolved'} | ${false}
392395
`(
393-
`given created_at = $created_at and modified_at = $modified_at, isEdited prop on ActivityMessage should be: $expectedIsEdited`,
394-
({ created_at, modified_at, expectedIsEdited }) => {
396+
`given created_at = $created_at, modified_at = $modified_at and status = $status, isEdited prop on ActivityMessage should be: $expectedIsEdited`,
397+
({ created_at, modified_at, status, expectedIsEdited }) => {
395398
const comment = {
396399
created_at,
397400
modified_at,
@@ -408,6 +411,7 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
408411
currentUser={currentUser}
409412
handlers={allHandlers}
410413
mentionSelectorContacts={mentionSelectorContacts}
414+
status={status}
411415
/>,
412416
);
413417

0 commit comments

Comments
 (0)