box-ui-elements 16.0.0-beta.9 → 16.0.0
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 +19 -58
- package/dist/openwith.css +1 -1
- package/dist/openwith.js +10 -10
- package/dist/picker.css +1 -1
- package/dist/picker.js +12 -12
- package/dist/preview.css +1 -1
- package/dist/preview.js +17 -56
- package/dist/sharing.css +1 -1
- package/dist/sharing.js +34 -34
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +17 -56
- package/dist/uploader.css +1 -1
- package/dist/uploader.js +12 -12
- package/es/api/APIFactory.js +27 -0
- package/es/api/APIFactory.js.flow +26 -0
- package/es/api/APIFactory.js.map +1 -1
- package/es/api/Annotations.js +84 -8
- package/es/api/Annotations.js.flow +60 -6
- package/es/api/Annotations.js.map +1 -1
- package/es/api/Comments.js +2 -2
- package/es/api/Comments.js.flow +5 -4
- package/es/api/Comments.js.map +1 -1
- package/es/api/Feed.js +578 -71
- package/es/api/Feed.js.flow +677 -17
- package/es/api/Feed.js.map +1 -1
- package/es/api/FileCollaborators.js +29 -0
- package/es/api/FileCollaborators.js.flow +30 -0
- package/es/api/FileCollaborators.js.map +1 -1
- package/es/api/ThreadedComments.js +64 -27
- package/es/api/ThreadedComments.js.flow +54 -29
- package/es/api/ThreadedComments.js.map +1 -1
- package/es/api/fixtures.js +381 -0
- package/es/api/fixtures.js.flow +401 -0
- package/es/api/fixtures.js.map +1 -0
- package/es/api/messages.js +4 -0
- package/es/api/messages.js.flow +5 -0
- package/es/api/messages.js.map +1 -1
- package/es/api/utils.js +33 -0
- package/es/api/utils.js.flow +30 -0
- package/es/api/utils.js.map +1 -0
- package/es/common/types/annotations.js.flow +18 -12
- package/es/common/types/feed.js +1 -1
- package/es/common/types/feed.js.flow +40 -4
- package/es/common/types/feed.js.map +1 -1
- package/es/components/accessible-svg/AccessibleSVG.stories.js +20 -0
- package/es/components/accessible-svg/AccessibleSVG.stories.js.map +1 -0
- package/es/components/badge/Badge.stories.js +1 -13
- package/es/components/badge/Badge.stories.js.map +1 -1
- package/es/components/badge/BetaBadge.stories.js +10 -0
- package/es/components/badge/BetaBadge.stories.js.map +1 -0
- package/es/components/badge/TrialBadge.stories.js +10 -0
- package/es/components/badge/TrialBadge.stories.js.map +1 -0
- package/es/components/badge/UpgradeBadge.stories.js +10 -0
- package/es/components/badge/UpgradeBadge.stories.js.map +1 -0
- package/es/components/breadcrumb/Breadcrumb.js +48 -35
- package/es/components/breadcrumb/Breadcrumb.js.flow +68 -42
- package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/EllipsisCrumb.js +5 -3
- package/es/components/breadcrumb/EllipsisCrumb.js.flow +10 -6
- package/es/components/breadcrumb/EllipsisCrumb.js.map +1 -1
- package/es/components/count-badge/CountBadge.stories.js +1 -1
- package/es/components/count-badge/CountBadge.stories.js.map +1 -1
- package/es/components/draggable-list/DraggableList.stories.js +119 -5
- package/es/components/draggable-list/DraggableList.stories.js.map +1 -1
- package/es/components/dropdown-menu/DropdownMenu.js +9 -0
- package/es/components/dropdown-menu/DropdownMenu.js.flow +11 -0
- package/es/components/dropdown-menu/DropdownMenu.js.map +1 -1
- package/es/components/dropdown-menu/DropdownMenu.scss +3 -3
- package/es/components/infinite-scroll/InfiniteScroll.js +4 -2
- package/es/components/infinite-scroll/InfiniteScroll.js.map +1 -1
- package/es/components/modal/Modal.scss +5 -1
- package/es/components/search-form/SearchForm.js +1 -1
- package/es/components/search-form/SearchForm.js.flow +1 -1
- package/es/components/search-form/SearchForm.js.map +1 -1
- package/es/components/table/makeSelectable.js +304 -97
- package/es/components/table/makeSelectable.js.flow +299 -98
- package/es/components/table/makeSelectable.js.map +1 -1
- package/es/components/tooltip/Tooltip.js +3 -2
- package/es/components/tooltip/Tooltip.js.map +1 -1
- package/es/constants.js +11 -0
- package/es/constants.js.flow +11 -0
- package/es/constants.js.map +1 -1
- package/es/elements/common/annotator-context/index.js +1 -0
- package/es/elements/common/annotator-context/index.js.flow +4 -0
- package/es/elements/common/annotator-context/index.js.map +1 -1
- package/es/elements/common/annotator-context/types.js +12 -0
- package/es/elements/common/annotator-context/types.js.flow +77 -35
- package/es/elements/common/annotator-context/types.js.map +1 -1
- package/es/elements/common/annotator-context/useAnnotatorEvents.js +205 -0
- package/es/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
- package/es/elements/common/annotator-context/useAnnotatorEvents.js.map +1 -0
- package/es/elements/common/annotator-context/withAnnotations.js +224 -5
- package/es/elements/common/annotator-context/withAnnotations.js.flow +73 -36
- package/es/elements/common/annotator-context/withAnnotations.js.map +1 -1
- package/es/elements/common/annotator-context/withAnnotatorContext.js +12 -4
- package/es/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
- package/es/elements/common/annotator-context/withAnnotatorContext.js.map +1 -1
- package/es/elements/common/current-user/index.js +3 -0
- package/es/elements/common/current-user/index.js.flow +8 -0
- package/es/elements/common/current-user/index.js.map +1 -0
- package/es/elements/common/current-user/withCurrentUser.js +139 -0
- package/es/elements/common/current-user/withCurrentUser.js.flow +40 -0
- package/es/elements/common/current-user/withCurrentUser.js.map +1 -0
- package/es/elements/common/flowTypes.js.flow +22 -4
- package/es/elements/common/flowTypes.js.map +1 -1
- package/es/elements/common/interactionTargets.js +2 -0
- package/es/elements/common/interactionTargets.js.flow +2 -0
- package/es/elements/common/interactionTargets.js.map +1 -1
- package/es/elements/common/logger/Logger.js +1 -1
- package/es/elements/common/logger/Logger.js.flow +1 -1
- package/es/elements/common/logger/Logger.js.map +1 -1
- package/es/elements/common/messages.js +4 -0
- package/es/elements/common/messages.js.flow +5 -0
- package/es/elements/common/messages.js.map +1 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js +2 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js.flow +3 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.js.map +1 -1
- package/es/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +58 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.flow +60 -0
- package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -0
- package/es/elements/content-sidebar/ActivitySidebar.js +323 -197
- package/es/elements/content-sidebar/ActivitySidebar.js.flow +381 -154
- package/es/elements/content-sidebar/ActivitySidebar.js.map +1 -1
- package/es/elements/content-sidebar/ActivitySidebarFilter.js +52 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.flow +59 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.js.map +1 -0
- package/es/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
- package/es/elements/content-sidebar/DetailsSidebar.js +50 -25
- package/es/elements/content-sidebar/DetailsSidebar.js.flow +32 -4
- package/es/elements/content-sidebar/DetailsSidebar.js.map +1 -1
- package/es/elements/content-sidebar/Sidebar.js +4 -1
- package/es/elements/content-sidebar/Sidebar.js.flow +6 -1
- package/es/elements/content-sidebar/Sidebar.js.map +1 -1
- package/es/elements/content-sidebar/SidebarContentInsights.js +45 -0
- package/es/elements/content-sidebar/SidebarContentInsights.js.map +1 -0
- package/es/elements/content-sidebar/SidebarContentInsights.scss +6 -0
- package/es/elements/content-sidebar/SidebarPanels.js +2 -0
- package/es/elements/content-sidebar/SidebarPanels.js.flow +4 -0
- package/es/elements/content-sidebar/SidebarPanels.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +91 -10
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.flow +122 -24
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +27 -15
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.flow +59 -18
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +101 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.flow +126 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +69 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js.flow +85 -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/ActivityThreadReplyForm.js +62 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.flow +59 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.flow +2 -2
- package/es/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js.map +1 -1
- 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 +16 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.flow +20 -0
- package/es/elements/content-sidebar/activity-feed/activity-feed/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +121 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.flow +117 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +75 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.flow +105 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +77 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.flow +86 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js +11 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.flow +26 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/errors.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js +2 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.flow +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/index.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js +17 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.flow +21 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/messages.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +180 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.flow +203 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +124 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.flow +121 -0
- package/es/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +19 -5
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.flow +24 -4
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +25 -4
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.flow +36 -2
- package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js +8 -0
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js.flow +10 -0
- package/es/elements/content-sidebar/activity-feed/annotations/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js +61 -28
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.flow +54 -10
- package/es/elements/content-sidebar/activity-feed/comment/Comment.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment/messages.js +8 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js.flow +10 -0
- package/es/elements/content-sidebar/activity-feed/comment/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +4 -2
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.flow +3 -1
- package/es/elements/content-sidebar/activity-feed/comment-form/CommentForm.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +16 -5
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.flow +34 -4
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +49 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.flow +42 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +21 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.flow +24 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js +12 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.flow +15 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-message/messages.js.map +1 -1
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +24 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.flow +30 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.flow +2 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/index.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js +9 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.flow +13 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-status/messages.js.map +1 -0
- package/es/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
- package/es/elements/content-sidebar/fixtures.js +181 -0
- package/es/elements/content-sidebar/fixtures.js.flow +185 -0
- package/es/elements/content-sidebar/fixtures.js.map +1 -0
- package/es/elements/content-sidebar/flowTypes.js.flow +9 -25
- package/es/elements/content-sidebar/messages.js +8 -0
- package/es/elements/content-sidebar/messages.js.flow +10 -0
- package/es/elements/content-sidebar/messages.js.map +1 -1
- package/es/elements/content-sidebar/withErrorHandling.js.flow +1 -1
- package/es/elements/content-sidebar/withErrorHandling.js.map +1 -1
- package/es/elements/content-sidebar/withSidebarAnnotations.js +215 -30
- package/es/elements/content-sidebar/withSidebarAnnotations.js.flow +162 -11
- package/es/elements/content-sidebar/withSidebarAnnotations.js.map +1 -1
- package/es/elements/content-uploader/OverallUploadsProgressBar.js +10 -8
- package/es/elements/content-uploader/OverallUploadsProgressBar.js.flow +11 -12
- package/es/elements/content-uploader/OverallUploadsProgressBar.js.map +1 -1
- package/es/features/classification/Classification.scss +1 -1
- package/es/features/classification/security-controls/SecurityControlsItem.scss +1 -0
- package/es/features/classification/security-controls/messages.js +8 -0
- package/es/features/classification/security-controls/messages.js.flow +10 -0
- package/es/features/classification/security-controls/messages.js.map +1 -1
- package/es/features/classification/security-controls/utils.js +4 -7
- package/es/features/classification/security-controls/utils.js.flow +8 -12
- package/es/features/classification/security-controls/utils.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.js +6 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.flow +4 -0
- package/es/features/content-explorer/content-explorer/ContentExplorer.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +15 -9
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.flow +14 -11
- package/es/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js.map +1 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.flow +4 -1
- package/es/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js.map +1 -1
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +6 -3
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.flow +5 -1
- package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js.map +1 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +6 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.flow +5 -1
- package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js.map +1 -1
- package/es/features/content-explorer/prop-types.js +7 -1
- package/es/features/content-explorer/prop-types.js.flow +8 -0
- package/es/features/content-explorer/prop-types.js.map +1 -1
- package/es/features/content-insights/CompactCount.js +24 -0
- package/es/features/content-insights/CompactCount.js.map +1 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.js +35 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.js.map +1 -0
- package/es/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
- package/es/features/content-insights/ContentInsightsSummary.js +42 -0
- package/es/features/content-insights/ContentInsightsSummary.js.map +1 -0
- package/es/features/content-insights/ContentInsightsSummary.scss +12 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.js +19 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.js.map +1 -0
- package/es/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
- package/es/features/content-insights/GraphCardGhostState.js +25 -0
- package/es/features/content-insights/GraphCardGhostState.js.map +1 -0
- package/es/features/content-insights/GraphCardGhostState.scss +18 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.js +30 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.js.map +1 -0
- package/es/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
- package/es/features/content-insights/GraphGhostState.js +21 -0
- package/es/features/content-insights/GraphGhostState.js.map +1 -0
- package/es/features/content-insights/GraphGhostState.scss +11 -0
- package/es/features/content-insights/HeaderWithCount.js +23 -0
- package/es/features/content-insights/HeaderWithCount.js.map +1 -0
- package/es/features/content-insights/HeaderWithCount.scss +10 -0
- package/es/features/content-insights/MetricSummary.js +85 -0
- package/es/features/content-insights/MetricSummary.js.map +1 -0
- package/es/features/content-insights/MetricSummary.scss +14 -0
- package/es/features/content-insights/OpenContentInsightsButton.js +16 -0
- package/es/features/content-insights/OpenContentInsightsButton.js.map +1 -0
- package/es/features/content-insights/TrendPill.js +61 -0
- package/es/features/content-insights/TrendPill.js.map +1 -0
- package/es/features/content-insights/TrendPill.scss +33 -0
- package/es/features/content-insights/_mixins.scss +7 -0
- package/es/features/content-insights/_variables.scss +4 -0
- package/es/features/content-insights/charts/bar/Bar.js +57 -0
- package/es/features/content-insights/charts/bar/Bar.js.map +1 -0
- package/es/features/content-insights/charts/bar/Bar.scss +27 -0
- package/es/features/content-insights/charts/bar/BarChart.js +70 -0
- package/es/features/content-insights/charts/bar/BarChart.js.map +1 -0
- package/es/features/content-insights/charts/bar/BarChart.scss +56 -0
- package/es/features/content-insights/charts/types.js +2 -0
- package/es/{common/types/threadedComments.js.map → features/content-insights/charts/types.js.map} +1 -1
- package/es/features/content-insights/constants.js +54 -0
- package/es/features/content-insights/constants.js.map +1 -0
- package/es/features/content-insights/messages.js +69 -0
- package/es/features/content-insights/messages.js.map +1 -0
- package/es/features/content-insights/numberUtils.js +10 -0
- package/es/features/content-insights/numberUtils.js.map +1 -0
- package/es/features/content-insights/types.js +2 -0
- package/es/features/content-insights/types.js.map +1 -0
- package/es/features/item-details/ItemProperties.scss +1 -1
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js +5 -3
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.flow +4 -2
- package/es/features/shared-link-settings-modal/SharedLinkSettingsModal.js.map +1 -1
- package/es/features/unified-share-modal/ContactRestrictionNotice.js +34 -8
- package/es/features/unified-share-modal/ContactRestrictionNotice.js.flow +36 -6
- package/es/features/unified-share-modal/ContactRestrictionNotice.js.map +1 -1
- package/es/features/unified-share-modal/EmailForm.js +59 -47
- package/es/features/unified-share-modal/EmailForm.js.flow +31 -13
- package/es/features/unified-share-modal/EmailForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareForm.js +112 -103
- package/es/features/unified-share-modal/UnifiedShareForm.js.flow +25 -8
- package/es/features/unified-share-modal/UnifiedShareForm.js.map +1 -1
- package/es/features/unified-share-modal/UnifiedShareModal.js +1 -0
- package/es/features/unified-share-modal/UnifiedShareModal.js.flow +1 -0
- package/es/features/unified-share-modal/UnifiedShareModal.js.map +1 -1
- package/es/features/unified-share-modal/flowTypes.js.flow +4 -2
- package/es/features/unified-share-modal/flowTypes.js.map +1 -1
- package/es/features/unified-share-modal/messages.js +12 -8
- package/es/features/unified-share-modal/messages.js.flow +14 -8
- package/es/features/unified-share-modal/messages.js.map +1 -1
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js +9 -4
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.flow +10 -3
- package/es/features/unified-share-modal/utils/hasRestrictedContacts.js.map +1 -1
- package/es/features/unified-share-modal/utils/isRestrictedContact.js +15 -0
- package/es/features/unified-share-modal/utils/isRestrictedContact.js.flow +21 -0
- package/es/features/unified-share-modal/utils/isRestrictedContact.js.map +1 -0
- package/es/icon/fill/Alert16.js +3 -2
- package/es/icon/fill/Alert16.js.flow +3 -2
- package/es/icon/fill/Alert16.js.map +1 -1
- package/es/icon/fill/AlertBadge16.js +31 -0
- package/es/icon/fill/AlertBadge16.js.flow +29 -0
- package/es/icon/fill/AlertBadge16.js.map +1 -0
- package/es/icon/fill/AlertBadge16.stories.js +13 -0
- package/es/icon/fill/AlertBadge16.stories.js.map +1 -0
- package/es/icon/fill/Info16.js +2 -2
- package/es/icon/fill/Info16.js.flow +1 -1
- package/es/icon/fill/Info16.js.map +1 -1
- package/es/icon/fill/InfoBadge16.js +30 -0
- package/es/icon/fill/InfoBadge16.js.flow +28 -0
- package/es/icon/fill/InfoBadge16.js.map +1 -0
- package/es/icon/fill/InfoBadge16.stories.js +13 -0
- package/es/icon/fill/InfoBadge16.stories.js.map +1 -0
- package/es/icon/line/AlertBubble16.js +31 -0
- package/es/icon/line/AlertBubble16.js.flow +29 -0
- package/es/icon/line/AlertBubble16.js.map +1 -0
- package/es/icon/line/AlertBubble16.stories.js +13 -0
- package/es/icon/line/AlertBubble16.stories.js.map +1 -0
- package/es/icon/line/AvatarXBadge16.js +45 -0
- package/es/icon/line/AvatarXBadge16.js.flow +39 -0
- package/es/icon/line/AvatarXBadge16.js.map +1 -0
- package/es/icon/line/AvatarXBadge16.stories.js +13 -0
- package/es/icon/line/AvatarXBadge16.stories.js.map +1 -0
- package/es/icon/line/CoEdit16.js +32 -0
- package/es/icon/line/CoEdit16.js.flow +30 -0
- package/es/icon/line/CoEdit16.js.map +1 -0
- package/es/icon/line/CoEdit16.stories.js +13 -0
- package/es/icon/line/CoEdit16.stories.js.map +1 -0
- package/es/icon/line/Collaborations16.js +32 -0
- package/es/icon/line/Collaborations16.js.flow +30 -0
- package/es/icon/line/Collaborations16.js.map +1 -0
- package/es/icon/line/Collaborations16.stories.js +13 -0
- package/es/icon/line/Collaborations16.stories.js.map +1 -0
- package/es/icon/line/CommentBubble16.js +35 -0
- package/es/icon/line/CommentBubble16.js.flow +34 -0
- package/es/icon/line/CommentBubble16.js.map +1 -0
- package/es/icon/line/CommentBubble16.stories.js +13 -0
- package/es/icon/line/CommentBubble16.stories.js.map +1 -0
- package/es/src/components/accessible-svg/AccessibleSVG.stories.d.ts +7 -0
- package/es/src/components/badge/Badge.stories.d.ts +0 -3
- package/es/src/components/badge/BetaBadge.stories.d.ts +6 -0
- package/es/src/components/badge/TrialBadge.stories.d.ts +6 -0
- package/es/src/components/badge/UpgradeBadge.stories.d.ts +6 -0
- package/es/src/components/draggable-list/DraggableList.stories.d.ts +3 -3
- package/es/src/components/infinite-scroll/InfiniteScroll.d.ts +1 -1
- package/es/src/components/tooltip/Tooltip.d.ts +2 -0
- package/es/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.d.ts +1 -0
- package/es/src/elements/common/annotator-context/index.d.ts +1 -0
- package/es/src/elements/common/annotator-context/types.d.ts +28 -6
- package/es/src/elements/common/annotator-context/useAnnotatorEvents.d.ts +52 -0
- package/es/src/elements/common/annotator-context/withAnnotations.d.ts +11 -2
- package/es/src/elements/common/annotator-context/withAnnotatorContext.d.ts +6 -2
- package/es/src/elements/common/current-user/__tests__/withCurrentUser.test.d.ts +1 -0
- package/es/src/elements/common/current-user/index.d.ts +2 -0
- package/es/src/elements/common/current-user/withCurrentUser.d.ts +20 -0
- package/es/src/elements/content-sidebar/SidebarContentInsights.d.ts +15 -0
- package/es/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.d.ts +1 -0
- package/es/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.d.ts +55 -0
- package/es/src/features/content-insights/CompactCount.d.ts +15 -0
- package/es/src/features/content-insights/ContentAnalyticsErrorState.d.ts +7 -0
- package/es/src/features/content-insights/ContentInsightsSummary.d.ts +12 -0
- package/es/src/features/content-insights/ContentInsightsSummaryGhostState.d.ts +3 -0
- package/es/src/features/content-insights/GraphCardGhostState.d.ts +3 -0
- package/es/src/features/content-insights/GraphCardPreviewsSummary.d.ts +16 -0
- package/es/src/features/content-insights/GraphGhostState.d.ts +3 -0
- package/es/src/features/content-insights/HeaderWithCount.d.ts +7 -0
- package/es/src/features/content-insights/MetricSummary.d.ts +18 -0
- package/es/src/features/content-insights/OpenContentInsightsButton.d.ts +5 -0
- package/es/src/features/content-insights/TrendPill.d.ts +15 -0
- package/es/src/features/content-insights/__tests__/CompactCount.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/ContentInsightsSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/HeaderWithCount.test.d.ts +1 -0
- package/es/src/features/content-insights/__tests__/MetricSummary.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/bar/Bar.d.ts +11 -0
- package/es/src/features/content-insights/charts/bar/BarChart.d.ts +19 -0
- package/es/src/features/content-insights/charts/bar/__tests__/Bar.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/bar/__tests__/BarChart.test.d.ts +1 -0
- package/es/src/features/content-insights/charts/types.d.ts +2 -0
- package/es/src/features/content-insights/constants.d.ts +27 -0
- package/es/src/features/content-insights/messages.d.ts +83 -0
- package/es/src/features/content-insights/numberUtils.d.ts +3 -0
- package/es/src/features/content-insights/types.d.ts +24 -0
- package/es/src/icon/fill/AlertBadge16.d.ts +13 -0
- package/es/src/icon/fill/AlertBadge16.stories.d.ts +9 -0
- package/es/src/icon/fill/InfoBadge16.d.ts +13 -0
- package/es/src/icon/fill/InfoBadge16.stories.d.ts +9 -0
- package/es/src/icon/line/AlertBubble16.d.ts +13 -0
- package/es/src/icon/line/AlertBubble16.stories.d.ts +9 -0
- package/es/src/icon/line/AvatarXBadge16.d.ts +13 -0
- package/es/src/icon/line/AvatarXBadge16.stories.d.ts +9 -0
- package/es/src/icon/line/CoEdit16.d.ts +13 -0
- package/es/src/icon/line/CoEdit16.stories.d.ts +9 -0
- package/es/src/icon/line/Collaborations16.d.ts +13 -0
- package/es/src/icon/line/Collaborations16.stories.d.ts +9 -0
- package/es/src/icon/line/CommentBubble16.d.ts +13 -0
- package/es/src/icon/line/CommentBubble16.stories.d.ts +9 -0
- package/es/src/styles/variables.d.ts +3 -1
- package/es/styles/constants/_layout.scss +1 -1
- package/es/styles/constants/_media-queries.scss +2 -0
- package/es/styles/variables.js +6 -2
- package/es/styles/variables.js.flow +4 -2
- package/es/styles/variables.js.map +1 -1
- package/es/utils/error.js +5 -1
- package/es/utils/error.js.flow +5 -1
- package/es/utils/error.js.map +1 -1
- package/es/utils/fields.js +8 -3
- package/es/utils/fields.js.flow +21 -3
- package/es/utils/fields.js.map +1 -1
- package/es/utils/sorter.js.flow +2 -2
- package/es/utils/sorter.js.map +1 -1
- package/i18n/bn-IN.js +45 -7
- package/i18n/bn-IN.properties +83 -7
- package/i18n/da-DK.js +45 -7
- package/i18n/da-DK.properties +83 -7
- package/i18n/de-DE.js +45 -7
- package/i18n/de-DE.properties +83 -7
- package/i18n/en-AU.js +45 -7
- package/i18n/en-AU.properties +83 -7
- package/i18n/en-CA.js +45 -7
- package/i18n/en-CA.properties +83 -7
- package/i18n/en-GB.js +45 -7
- package/i18n/en-GB.properties +83 -7
- package/i18n/en-US.js +45 -7
- package/i18n/en-US.properties +83 -7
- package/i18n/en-x-pseudo.js +891 -854
- package/i18n/en-x-pseudo.properties +941 -843
- package/i18n/es-419.js +45 -7
- package/i18n/es-419.properties +83 -7
- package/i18n/es-ES.js +45 -7
- package/i18n/es-ES.properties +83 -7
- package/i18n/fi-FI.js +45 -7
- package/i18n/fi-FI.properties +83 -7
- package/i18n/fr-CA.js +45 -7
- package/i18n/fr-CA.properties +83 -7
- package/i18n/fr-FR.js +45 -7
- package/i18n/fr-FR.properties +83 -7
- package/i18n/hi-IN.js +45 -7
- package/i18n/hi-IN.properties +83 -7
- package/i18n/it-IT.js +45 -7
- package/i18n/it-IT.properties +83 -7
- package/i18n/ja-JP.js +47 -9
- package/i18n/ja-JP.properties +85 -9
- package/i18n/ko-KR.js +45 -7
- package/i18n/ko-KR.properties +83 -7
- package/i18n/nb-NO.js +45 -7
- package/i18n/nb-NO.properties +83 -7
- package/i18n/nl-NL.js +45 -7
- package/i18n/nl-NL.properties +83 -7
- package/i18n/pl-PL.js +45 -7
- package/i18n/pl-PL.properties +83 -7
- package/i18n/pt-BR.js +45 -7
- package/i18n/pt-BR.properties +83 -7
- package/i18n/ru-RU.js +45 -7
- package/i18n/ru-RU.properties +83 -7
- package/i18n/sv-SE.js +45 -7
- package/i18n/sv-SE.properties +83 -7
- package/i18n/tr-TR.js +45 -7
- package/i18n/tr-TR.properties +83 -7
- package/i18n/zh-CN.js +45 -7
- package/i18n/zh-CN.properties +83 -7
- package/i18n/zh-TW.js +45 -7
- package/i18n/zh-TW.properties +83 -7
- package/package.json +7 -8
- package/src/__mocks__/react-intl.js +4 -0
- package/src/api/APIFactory.js +26 -0
- package/src/api/Annotations.js +60 -6
- package/src/api/Comments.js +5 -4
- package/src/api/Feed.js +677 -17
- package/src/api/FileCollaborators.js +30 -0
- package/src/api/ThreadedComments.js +54 -29
- package/src/api/__tests__/Annotations.test.js +77 -3
- package/src/api/__tests__/Feed.test.js +698 -85
- package/src/api/__tests__/FileCollaborators.test.js +41 -0
- package/src/api/__tests__/ThreadedComments.test.js +47 -10
- package/src/api/__tests__/utils.test.js +11 -0
- package/src/api/fixtures.js +401 -0
- package/src/api/messages.js +5 -0
- package/src/api/utils.js +30 -0
- package/src/common/types/annotations.js +18 -12
- package/src/common/types/feed.js +40 -4
- package/src/components/accessible-svg/AccessibleSVG.stories.tsx +18 -0
- package/src/components/badge/Badge.stories.md +1 -7
- package/src/components/badge/Badge.stories.tsx +1 -10
- package/src/components/badge/BetaBadge.stories.tsx +9 -0
- package/src/components/badge/TrialBadge.stories.tsx +9 -0
- package/src/components/badge/UpgradeBadge.stories.tsx +9 -0
- package/src/components/breadcrumb/Breadcrumb.js +68 -42
- package/src/components/breadcrumb/EllipsisCrumb.js +10 -6
- package/src/components/count-badge/CountBadge.stories.tsx +1 -1
- package/src/components/draggable-list/DraggableList.stories.tsx +72 -5
- package/src/components/dropdown-menu/DropdownMenu.js +11 -0
- package/src/components/dropdown-menu/DropdownMenu.scss +3 -3
- package/src/components/dropdown-menu/__tests__/DropdownMenu.test.js +38 -0
- package/src/components/grid-view/__tests__/__snapshots__/GridViewSlider.test.js.snap +1 -0
- package/src/components/infinite-scroll/InfiniteScroll.md +1 -1
- package/src/components/infinite-scroll/InfiniteScroll.tsx +5 -2
- package/src/components/infinite-scroll/__tests__/InfiniteScroll.test.tsx +115 -127
- package/src/components/modal/Modal.scss +5 -1
- package/src/components/search-form/SearchForm.js +1 -1
- package/src/components/search-form/__tests__/SearchForm.test.js +25 -6
- package/src/components/sidebar-toggle-button/__tests__/__snapshots__/SidebarToggleButton.test.js.snap +4 -0
- package/src/components/table/__tests__/makeSelectable.test.js +654 -144
- package/src/components/table/makeSelectable.js +299 -98
- package/src/components/time/__tests__/ReadableTime.test.js +0 -1
- package/src/components/tooltip/Tooltip.tsx +5 -2
- package/src/components/tooltip/__tests__/Tooltip.test.tsx +10 -0
- package/src/components/tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +1 -1
- package/src/constants.js +11 -0
- package/src/elements/common/annotator-context/__tests__/useAnnotatorEvents.test.tsx +509 -0
- package/src/elements/common/annotator-context/__tests__/withAnnotations.test.tsx +275 -12
- package/src/elements/common/annotator-context/__tests__/withAnnotatorContext.test.tsx +18 -6
- package/src/elements/common/annotator-context/index.js.flow +4 -0
- package/src/elements/common/annotator-context/index.ts +1 -0
- package/src/elements/common/annotator-context/types.js.flow +77 -35
- package/src/elements/common/annotator-context/types.ts +28 -6
- package/src/elements/common/annotator-context/useAnnotatorEvents.js.flow +52 -0
- package/src/elements/common/annotator-context/useAnnotatorEvents.ts +190 -0
- package/src/elements/common/annotator-context/withAnnotations.js.flow +73 -36
- package/src/elements/common/annotator-context/withAnnotations.tsx +170 -7
- package/src/elements/common/annotator-context/withAnnotatorContext.js.flow +29 -9
- package/src/elements/common/annotator-context/withAnnotatorContext.tsx +28 -5
- package/src/elements/common/current-user/__tests__/withCurrentUser.test.tsx +108 -0
- package/src/elements/common/current-user/index.js.flow +8 -0
- package/src/elements/common/current-user/index.ts +2 -0
- package/src/elements/common/current-user/withCurrentUser.js.flow +40 -0
- package/src/elements/common/current-user/withCurrentUser.tsx +139 -0
- package/src/elements/common/flowTypes.js +22 -4
- package/src/elements/common/interactionTargets.js +2 -0
- package/src/elements/common/logger/Logger.js +1 -1
- package/src/elements/common/messages.js +5 -0
- package/src/elements/content-explorer/DeleteConfirmationDialog.js +3 -1
- package/src/elements/content-explorer/DeleteConfirmationDialog.scss +5 -0
- package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +60 -0
- package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.md +1 -0
- package/src/elements/content-sidebar/ActivitySidebar.js +381 -154
- package/src/elements/content-sidebar/ActivitySidebarFilter.js +59 -0
- package/src/elements/content-sidebar/ActivitySidebarFilter.scss +4 -0
- package/src/elements/content-sidebar/DetailsSidebar.js +32 -4
- package/src/elements/content-sidebar/Sidebar.js +6 -1
- package/src/elements/content-sidebar/SidebarContentInsights.scss +6 -0
- package/src/elements/content-sidebar/SidebarContentInsights.tsx +57 -0
- package/src/elements/content-sidebar/SidebarPanels.js +4 -0
- package/src/elements/content-sidebar/__tests__/ActivitySidebar.test.js +533 -243
- package/src/elements/content-sidebar/__tests__/ActivitySidebarFilter.test.js +54 -0
- package/src/elements/content-sidebar/__tests__/DetailsSidebar.test.js +45 -0
- package/src/elements/content-sidebar/__tests__/Sidebar.test.js +1 -1
- package/src/elements/content-sidebar/__tests__/SidebarContentInsights.test.tsx +56 -0
- package/src/elements/content-sidebar/__tests__/SidebarPanels.test.js +4 -3
- package/src/elements/content-sidebar/__tests__/__snapshots__/ActivitySidebar.test.js.snap +29 -15
- package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarFileProperties.test.js.snap +1 -0
- package/src/elements/content-sidebar/__tests__/withSidebarAnnotations.test.js +325 -32
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActiveState.js +122 -24
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityFeed.js +59 -18
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.js +126 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThread.scss +17 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.js +85 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplies.scss +16 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.js +59 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/ActivityThreadReplyForm.scss +22 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActiveState.test.js +19 -5
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityFeed.test.js +22 -16
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/ActivityThread.test.js +80 -0
- 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__/ActivityThreadRepliesForm.test.js +47 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/__snapshots__/ActiveState.test.js.snap +74 -43
- package/src/elements/content-sidebar/activity-feed/activity-feed/__tests__/activityFeedUtils.test.js +8 -8
- package/src/elements/content-sidebar/activity-feed/activity-feed/activityFeedUtils.js +2 -2
- package/src/elements/content-sidebar/activity-feed/activity-feed/fixtures.ts +56 -0
- package/src/elements/content-sidebar/activity-feed/activity-feed/messages.js +20 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.js +117 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThread.scss +7 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.js +105 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadContent.scss +5 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.js +86 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/AnnotationThreadCreate.scss +3 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThread.test.js +28 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadContent.test.js +89 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/AnnotationThreadCreate.test.js +103 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useAnnotationAPI.test.js +202 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/__tests__/useRepliesAPI.test.js +99 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/errors.js +26 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/index.js +1 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/messages.js +21 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationAPI.js +203 -0
- package/src/elements/content-sidebar/activity-feed/annotation-thread/useRepliesAPI.js +121 -0
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivity.js +24 -4
- package/src/elements/content-sidebar/activity-feed/annotations/AnnotationActivityMenu.js +36 -2
- package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js +14 -10
- package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivityMenu.test.js +35 -1
- package/src/elements/content-sidebar/activity-feed/annotations/messages.js +10 -0
- package/src/elements/content-sidebar/activity-feed/comment/Comment.js +54 -10
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/Comment.test.js +152 -7
- package/src/elements/content-sidebar/activity-feed/comment/__tests__/__snapshots__/Comment.test.js.snap +12 -7
- package/src/elements/content-sidebar/activity-feed/comment/messages.js +10 -0
- package/src/elements/content-sidebar/activity-feed/comment-form/CommentForm.js +3 -1
- package/src/elements/content-sidebar/activity-feed/comment-form/__tests__/CommentForm.test.js +11 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.js +34 -4
- package/src/elements/content-sidebar/activity-feed/common/activity-message/ActivityMessage.scss +40 -3
- package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessage.js +42 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/CollapsableMessageToggle.js +24 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-message/__tests__/ActivityMessage.test.js +48 -1
- package/src/elements/content-sidebar/activity-feed/common/activity-message/messages.js +15 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.js +30 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/ActivityStatus.scss +6 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/__tests__/ActivityStatus.test.js +19 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/index.js +2 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-status/messages.js +13 -0
- package/src/elements/content-sidebar/activity-feed/common/activity-timestamp/ActivityTimestamp.scss +1 -1
- package/src/elements/content-sidebar/activity-feed/task-new/__tests__/Task.test.js +4 -3
- package/src/elements/content-sidebar/activity-feed/task-new/__tests__/__snapshots__/Task.test.js.snap +1 -2
- package/src/elements/content-sidebar/fixtures.js +185 -0
- package/src/elements/content-sidebar/flowTypes.js +9 -25
- package/src/elements/content-sidebar/messages.js +10 -0
- package/src/elements/content-sidebar/withErrorHandling.js +1 -1
- package/src/elements/content-sidebar/withSidebarAnnotations.js +162 -11
- package/src/elements/content-uploader/OverallUploadsProgressBar.js +11 -12
- package/src/features/classification/Classification.scss +1 -1
- package/src/features/classification/security-controls/SecurityControlsItem.scss +1 -0
- package/src/features/classification/security-controls/__tests__/__snapshots__/utils.test.js.snap +18 -16
- package/src/features/classification/security-controls/__tests__/utils.test.js +13 -5
- package/src/features/classification/security-controls/messages.js +10 -0
- package/src/features/classification/security-controls/utils.js +8 -12
- package/src/features/collapsible-sidebar/__tests__/__snapshots__/CollapsibleSidebarLogo.test.js.snap +2 -0
- package/src/features/content-explorer/content-explorer/ContentExplorer.js +4 -0
- package/src/features/content-explorer/content-explorer/ContentExplorer.scss +4 -0
- package/src/features/content-explorer/content-explorer/ContentExplorerBreadcrumbs.js +14 -11
- package/src/features/content-explorer/content-explorer/ContentExplorerHeaderActions.js +4 -1
- package/src/features/content-explorer/content-explorer/__tests__/ContentExplorerBreadcrumbs.test.js +2 -2
- package/src/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +5 -1
- package/src/features/content-explorer/content-explorer-modal/__tests__/__snapshots__/ContentExplorerModal.test.js.snap +1 -0
- package/src/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +5 -1
- package/src/features/content-explorer/prop-types.js +8 -0
- package/src/features/content-insights/CompactCount.tsx +23 -0
- package/src/features/content-insights/ContentAnalyticsErrorState.scss +17 -0
- package/src/features/content-insights/ContentAnalyticsErrorState.tsx +44 -0
- package/src/features/content-insights/ContentInsightsSummary.scss +12 -0
- package/src/features/content-insights/ContentInsightsSummary.tsx +45 -0
- package/src/features/content-insights/ContentInsightsSummaryGhostState.scss +9 -0
- package/src/features/content-insights/ContentInsightsSummaryGhostState.tsx +18 -0
- package/src/features/content-insights/GraphCardGhostState.scss +18 -0
- package/src/features/content-insights/GraphCardGhostState.tsx +18 -0
- package/src/features/content-insights/GraphCardPreviewsSummary.scss +10 -0
- package/src/features/content-insights/GraphCardPreviewsSummary.tsx +40 -0
- package/src/features/content-insights/GraphGhostState.scss +11 -0
- package/src/features/content-insights/GraphGhostState.tsx +17 -0
- package/src/features/content-insights/HeaderWithCount.scss +10 -0
- package/src/features/content-insights/HeaderWithCount.tsx +24 -0
- package/src/features/content-insights/MetricSummary.scss +14 -0
- package/src/features/content-insights/MetricSummary.tsx +65 -0
- package/src/features/content-insights/OpenContentInsightsButton.tsx +20 -0
- package/src/features/content-insights/TrendPill.scss +33 -0
- package/src/features/content-insights/TrendPill.tsx +70 -0
- package/src/features/content-insights/__tests__/CompactCount.test.tsx +57 -0
- package/src/features/content-insights/__tests__/ContentAnalyticsErrorState.test.tsx +33 -0
- package/src/features/content-insights/__tests__/ContentInsightsSummary.test.tsx +81 -0
- package/src/features/content-insights/__tests__/GraphCardPreviewsSummary.test.tsx +35 -0
- package/src/features/content-insights/__tests__/HeaderWithCount.test.tsx +26 -0
- package/src/features/content-insights/__tests__/MetricSummary.test.tsx +88 -0
- package/src/features/content-insights/_mixins.scss +7 -0
- package/src/features/content-insights/_variables.scss +4 -0
- package/src/features/content-insights/charts/bar/Bar.scss +27 -0
- package/src/features/content-insights/charts/bar/Bar.tsx +48 -0
- package/src/features/content-insights/charts/bar/BarChart.scss +56 -0
- package/src/features/content-insights/charts/bar/BarChart.tsx +78 -0
- package/src/features/content-insights/charts/bar/__tests__/Bar.test.tsx +74 -0
- package/src/features/content-insights/charts/bar/__tests__/BarChart.test.tsx +110 -0
- package/src/features/content-insights/charts/types.ts +3 -0
- package/src/features/content-insights/constants.ts +60 -0
- package/src/features/content-insights/messages.ts +90 -0
- package/src/features/content-insights/numberUtils.ts +9 -0
- package/src/features/content-insights/types.ts +33 -0
- package/src/features/item-details/ItemProperties.scss +1 -1
- package/src/features/shared-link-settings-modal/SharedLinkSettingsModal.js +4 -2
- package/src/features/shared-link-settings-modal/__tests__/SharedLinkSettingsModal.test.js +22 -3
- package/src/features/shared-link-settings-modal/__tests__/__snapshots__/SharedLinkSettingsModal.test.js.snap +2 -1
- package/src/features/unified-share-modal/ContactRestrictionNotice.js +36 -6
- package/src/features/unified-share-modal/EmailForm.js +31 -13
- package/src/features/unified-share-modal/UnifiedShareForm.js +25 -8
- package/src/features/unified-share-modal/UnifiedShareModal.js +1 -0
- package/src/features/unified-share-modal/__tests__/ContactRestrictionNotice.test.js +55 -6
- package/src/features/unified-share-modal/__tests__/EmailForm.test.js +131 -24
- package/src/features/unified-share-modal/__tests__/UnifiedShareForm.test.js +89 -35
- package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareForm.test.js.snap +16 -0
- package/src/features/unified-share-modal/__tests__/__snapshots__/UnifiedShareModal.test.js.snap +17 -0
- package/src/features/unified-share-modal/flowTypes.js +4 -2
- package/src/features/unified-share-modal/messages.js +14 -8
- package/src/features/unified-share-modal/utils/__tests__/hasRestrictedContacts.test.js +24 -10
- package/src/features/unified-share-modal/utils/__tests__/isRestrictedContact.test.js +33 -0
- package/src/features/unified-share-modal/utils/hasRestrictedContacts.js +10 -3
- package/src/features/unified-share-modal/utils/isRestrictedContact.js +21 -0
- package/src/features/virtualized-table/__tests__/__snapshots__/VirtualizedTable.test.js.snap +1 -0
- package/src/icon/fill/Alert16.js.flow +3 -2
- package/src/icon/fill/Alert16.tsx +3 -2
- package/src/icon/fill/AlertBadge16.js.flow +29 -0
- package/src/icon/fill/AlertBadge16.stories.tsx +13 -0
- package/src/icon/fill/AlertBadge16.tsx +27 -0
- package/src/icon/fill/Info16.js.flow +1 -1
- package/src/icon/fill/Info16.tsx +1 -1
- package/src/icon/fill/InfoBadge16.js.flow +28 -0
- package/src/icon/fill/InfoBadge16.stories.tsx +13 -0
- package/src/icon/fill/InfoBadge16.tsx +26 -0
- package/src/icon/line/AlertBubble16.js.flow +29 -0
- package/src/icon/line/AlertBubble16.stories.tsx +13 -0
- package/src/icon/line/AlertBubble16.tsx +27 -0
- package/src/icon/line/AvatarXBadge16.js.flow +39 -0
- package/src/icon/line/AvatarXBadge16.stories.tsx +13 -0
- package/src/icon/line/AvatarXBadge16.tsx +37 -0
- package/src/icon/line/CoEdit16.js.flow +30 -0
- package/src/icon/line/CoEdit16.stories.tsx +13 -0
- package/src/icon/line/CoEdit16.tsx +28 -0
- package/src/icon/line/Collaborations16.js.flow +30 -0
- package/src/icon/line/Collaborations16.stories.tsx +13 -0
- package/src/icon/line/Collaborations16.tsx +28 -0
- package/src/icon/line/CommentBubble16.js.flow +34 -0
- package/src/icon/line/CommentBubble16.stories.tsx +13 -0
- package/src/icon/line/CommentBubble16.tsx +32 -0
- package/src/styles/constants/_layout.scss +1 -1
- package/src/styles/constants/_media-queries.scss +2 -0
- package/src/styles/variables.js +4 -2
- package/src/styles/variables.json +4 -2
- package/src/styles/variables.ts +3 -1
- package/src/utils/__tests__/fields.test.js +23 -4
- package/src/utils/__tests__/sorter.test.js +3 -3
- package/src/utils/error.js +5 -1
- package/src/utils/fields.js +21 -3
- package/src/utils/sorter.js +2 -2
- package/es/common/types/threadedComments.js +0 -2
- package/es/common/types/threadedComments.js.flow +0 -9
- package/src/common/types/threadedComments.js +0 -9
|
@@ -6,6 +6,7 @@ import noop from 'lodash/noop';
|
|
|
6
6
|
import TetherComponent from 'react-tether';
|
|
7
7
|
import ActivityError from '../common/activity-error';
|
|
8
8
|
import ActivityMessage from '../common/activity-message';
|
|
9
|
+
import ActivityStatus from '../common/activity-status';
|
|
9
10
|
import ActivityTimestamp from '../common/activity-timestamp';
|
|
10
11
|
import AnnotationActivityLink from './AnnotationActivityLink';
|
|
11
12
|
import AnnotationActivityMenu from './AnnotationActivityMenu';
|
|
@@ -18,7 +19,7 @@ import SelectableActivityCard from '../SelectableActivityCard';
|
|
|
18
19
|
import UserLink from '../common/user-link';
|
|
19
20
|
import { ACTIVITY_TARGETS } from '../../../common/interactionTargets';
|
|
20
21
|
import { PLACEHOLDER_USER } from '../../../../constants';
|
|
21
|
-
import type { Annotation, AnnotationPermission } from '../../../../common/types/feed';
|
|
22
|
+
import type { Annotation, AnnotationPermission, FeedItemStatus } from '../../../../common/types/feed';
|
|
22
23
|
import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
23
24
|
import type { SelectorItems, User } from '../../../../common/types/core';
|
|
24
25
|
|
|
@@ -35,6 +36,7 @@ type Props = {
|
|
|
35
36
|
onDelete?: ({ id: string, permissions: AnnotationPermission }) => any,
|
|
36
37
|
onEdit?: (id: string, text: string, permissions: AnnotationPermission) => void,
|
|
37
38
|
onSelect?: (annotation: Annotation) => any,
|
|
39
|
+
onStatusChange?: (id: string, status: FeedItemStatus, permissions: AnnotationPermission) => void,
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
const AnnotationActivity = ({
|
|
@@ -48,15 +50,27 @@ const AnnotationActivity = ({
|
|
|
48
50
|
onDelete = noop,
|
|
49
51
|
onEdit = noop,
|
|
50
52
|
onSelect = noop,
|
|
53
|
+
onStatusChange = noop,
|
|
51
54
|
}: Props) => {
|
|
52
55
|
const [isConfirmingDelete, setIsConfirmingDelete] = React.useState(false);
|
|
53
56
|
const [isEditing, setIsEditing] = React.useState(false);
|
|
54
57
|
const [isMenuOpen, setIsMenuOpen] = React.useState(false);
|
|
55
|
-
const {
|
|
56
|
-
|
|
58
|
+
const {
|
|
59
|
+
created_at,
|
|
60
|
+
created_by,
|
|
61
|
+
description,
|
|
62
|
+
error,
|
|
63
|
+
file_version,
|
|
64
|
+
id,
|
|
65
|
+
isPending,
|
|
66
|
+
permissions = {},
|
|
67
|
+
status,
|
|
68
|
+
target,
|
|
69
|
+
} = item;
|
|
70
|
+
const { can_delete: canDelete, can_edit: canEdit, can_resolve: canResolve } = permissions;
|
|
57
71
|
const isFileVersionUnavailable = file_version === null;
|
|
58
72
|
const isCardDisabled = !!error || isConfirmingDelete || isMenuOpen || isEditing || isFileVersionUnavailable;
|
|
59
|
-
const isMenuVisible = (canDelete || canEdit) && !isPending;
|
|
73
|
+
const isMenuVisible = (canDelete || canEdit || canResolve) && !isPending;
|
|
60
74
|
|
|
61
75
|
const handleDelete = (): void => setIsConfirmingDelete(true);
|
|
62
76
|
const handleDeleteCancel = (): void => setIsConfirmingDelete(false);
|
|
@@ -84,6 +98,8 @@ const AnnotationActivity = ({
|
|
|
84
98
|
};
|
|
85
99
|
const handleSelect = () => onSelect(item);
|
|
86
100
|
|
|
101
|
+
const handleStatusChange = (newStatus: FeedItemStatus) => onStatusChange(id, newStatus, permissions);
|
|
102
|
+
|
|
87
103
|
const createdAtTimestamp = new Date(created_at).getTime();
|
|
88
104
|
const createdByUser = created_by || PLACEHOLDER_USER;
|
|
89
105
|
const linkMessage = isCurrentVersion ? messages.annotationActivityPageItem : messages.annotationActivityVersionLink;
|
|
@@ -139,6 +155,7 @@ const AnnotationActivity = ({
|
|
|
139
155
|
onClick={handleSelect}
|
|
140
156
|
/>
|
|
141
157
|
</div>
|
|
158
|
+
<ActivityStatus status={status} />
|
|
142
159
|
{isEditing && currentUser ? (
|
|
143
160
|
<CommentForm
|
|
144
161
|
className="bcs-AnnotationActivity-editor"
|
|
@@ -166,13 +183,16 @@ const AnnotationActivity = ({
|
|
|
166
183
|
<AnnotationActivityMenu
|
|
167
184
|
canDelete={canDelete}
|
|
168
185
|
canEdit={canEdit}
|
|
186
|
+
canResolve={canResolve}
|
|
169
187
|
className="bcs-AnnotationActivity-menu"
|
|
170
188
|
id={id}
|
|
171
189
|
isDisabled={isConfirmingDelete}
|
|
190
|
+
status={status}
|
|
172
191
|
onDelete={handleDelete}
|
|
173
192
|
onEdit={handleEdit}
|
|
174
193
|
onMenuClose={handleMenuClose}
|
|
175
194
|
onMenuOpen={handleMenuOpen}
|
|
195
|
+
onStatusChange={handleStatusChange}
|
|
176
196
|
/>
|
|
177
197
|
)}
|
|
178
198
|
{isConfirmingDelete && (
|
|
@@ -3,18 +3,23 @@ import * as React from 'react';
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { FormattedMessage } from 'react-intl';
|
|
5
5
|
import DropdownMenu from '../../../../components/dropdown-menu';
|
|
6
|
+
import Checkmark16 from '../../../../icon/fill/Checkmark16';
|
|
6
7
|
import IconEllipsis from '../../../../icons/general/IconEllipsis';
|
|
7
|
-
import messages from './messages';
|
|
8
8
|
import Pencil16 from '../../../../icon/line/Pencil16';
|
|
9
9
|
import PlainButton from '../../../../components/plain-button';
|
|
10
10
|
import Trash16 from '../../../../icon/fill/Trash16';
|
|
11
|
+
import X16 from '../../../../icon/fill/X16';
|
|
12
|
+
import { Menu, MenuItem } from '../../../../components/menu';
|
|
11
13
|
import { ACTIVITY_TARGETS } from '../../../common/interactionTargets';
|
|
14
|
+
import { COMMENT_STATUS_OPEN, COMMENT_STATUS_RESOLVED } from '../../../../constants';
|
|
12
15
|
import { bdlGray50 } from '../../../../styles/variables';
|
|
13
|
-
import {
|
|
16
|
+
import type { FeedItemStatus } from '../../../../common/types/feed';
|
|
17
|
+
import messages from './messages';
|
|
14
18
|
|
|
15
19
|
type AnnotationActivityMenuProps = {
|
|
16
20
|
canDelete?: boolean,
|
|
17
21
|
canEdit?: boolean,
|
|
22
|
+
canResolve?: boolean,
|
|
18
23
|
className?: string,
|
|
19
24
|
id: string,
|
|
20
25
|
isDisabled?: boolean,
|
|
@@ -22,11 +27,14 @@ type AnnotationActivityMenuProps = {
|
|
|
22
27
|
onEdit: () => void,
|
|
23
28
|
onMenuClose: () => void,
|
|
24
29
|
onMenuOpen: () => void,
|
|
30
|
+
onStatusChange: (newStatus: FeedItemStatus) => void,
|
|
31
|
+
status?: FeedItemStatus,
|
|
25
32
|
};
|
|
26
33
|
|
|
27
34
|
const AnnotationActivityMenu = ({
|
|
28
35
|
canDelete,
|
|
29
36
|
canEdit,
|
|
37
|
+
canResolve,
|
|
30
38
|
className,
|
|
31
39
|
id,
|
|
32
40
|
isDisabled,
|
|
@@ -34,11 +42,14 @@ const AnnotationActivityMenu = ({
|
|
|
34
42
|
onEdit,
|
|
35
43
|
onMenuClose,
|
|
36
44
|
onMenuOpen,
|
|
45
|
+
onStatusChange,
|
|
46
|
+
status,
|
|
37
47
|
}: AnnotationActivityMenuProps) => {
|
|
38
48
|
const menuProps = {
|
|
39
49
|
'data-resin-component': 'preview',
|
|
40
50
|
'data-resin-feature': 'annotations',
|
|
41
51
|
};
|
|
52
|
+
const isResolved = status === COMMENT_STATUS_RESOLVED;
|
|
42
53
|
|
|
43
54
|
return (
|
|
44
55
|
<DropdownMenu constrainToScrollParent isRightAligned onMenuClose={onMenuClose} onMenuOpen={onMenuOpen}>
|
|
@@ -51,6 +62,29 @@ const AnnotationActivityMenu = ({
|
|
|
51
62
|
<IconEllipsis color={bdlGray50} height={16} width={16} />
|
|
52
63
|
</PlainButton>
|
|
53
64
|
<Menu {...menuProps}>
|
|
65
|
+
{canResolve && isResolved && (
|
|
66
|
+
<MenuItem
|
|
67
|
+
data-resin-itemid={id}
|
|
68
|
+
data-resin-target={ACTIVITY_TARGETS.ANNOTATION_OPTIONS_UNRESOLVE}
|
|
69
|
+
data-testid="unresolve-annotation-activity"
|
|
70
|
+
onClick={() => onStatusChange(COMMENT_STATUS_OPEN)}
|
|
71
|
+
>
|
|
72
|
+
<X16 />
|
|
73
|
+
<FormattedMessage {...messages.annotationActivityUnresolveMenuItem} />
|
|
74
|
+
</MenuItem>
|
|
75
|
+
)}
|
|
76
|
+
{canResolve && !isResolved && (
|
|
77
|
+
<MenuItem
|
|
78
|
+
data-resin-itemid={id}
|
|
79
|
+
data-resin-target={ACTIVITY_TARGETS.ANNOTATION_OPTIONS_RESOLVE}
|
|
80
|
+
data-testid="resolve-annotation-activity"
|
|
81
|
+
onClick={() => onStatusChange(COMMENT_STATUS_RESOLVED)}
|
|
82
|
+
>
|
|
83
|
+
<Checkmark16 />
|
|
84
|
+
<FormattedMessage {...messages.annotationActivityResolveMenuItem} />
|
|
85
|
+
</MenuItem>
|
|
86
|
+
)}
|
|
87
|
+
|
|
54
88
|
{canEdit && (
|
|
55
89
|
<MenuItem
|
|
56
90
|
data-resin-itemid={id}
|
package/src/elements/content-sidebar/activity-feed/annotations/__tests__/AnnotationActivity.test.js
CHANGED
|
@@ -50,10 +50,10 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
|
|
|
50
50
|
CommentForm.default = jest.fn().mockReturnValue(<div />);
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
test('should not render annotation activity menu when
|
|
53
|
+
test('should not render annotation activity menu when can_delete is false and can_edit is false and can_resolve is false', () => {
|
|
54
54
|
const item = {
|
|
55
55
|
...mockAnnotation,
|
|
56
|
-
permissions: { can_delete: false, can_edit: false },
|
|
56
|
+
permissions: { can_delete: false, can_edit: false, can_resolve: false },
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
const wrapper = getWrapper({ item });
|
|
@@ -62,17 +62,21 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
|
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
test.each`
|
|
65
|
-
canDelete | canEdit
|
|
66
|
-
${false} | ${true}
|
|
67
|
-
${true} | ${false}
|
|
68
|
-
${
|
|
65
|
+
canDelete | canEdit | canResolve
|
|
66
|
+
${false} | ${false} | ${true}
|
|
67
|
+
${true} | ${false} | ${false}
|
|
68
|
+
${false} | ${true} | ${false}
|
|
69
|
+
${false} | ${true} | ${true}
|
|
70
|
+
${true} | ${true} | ${false}
|
|
71
|
+
${true} | ${false} | ${true}
|
|
72
|
+
${true} | ${true} | ${true}
|
|
69
73
|
`(
|
|
70
|
-
'should correctly render annotation activity when canDelete: $canDelete and canEdit: $canEdit',
|
|
71
|
-
({ canDelete, canEdit }) => {
|
|
74
|
+
'should correctly render annotation activity when canDelete: $canDelete and canEdit: $canEdit and canResolve: $canResolve',
|
|
75
|
+
({ canDelete, canEdit, canResolve }) => {
|
|
72
76
|
const unixTime = new Date(TIME_STRING_SEPT_27_2017).getTime();
|
|
73
77
|
const item = {
|
|
74
78
|
...mockAnnotation,
|
|
75
|
-
permissions: { can_delete: canDelete, can_edit: canEdit },
|
|
79
|
+
permissions: { can_delete: canDelete, can_edit: canEdit, can_resolve: canResolve },
|
|
76
80
|
};
|
|
77
81
|
|
|
78
82
|
const wrapper = getWrapper({ item });
|
|
@@ -86,7 +90,7 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivity',
|
|
|
86
90
|
},
|
|
87
91
|
});
|
|
88
92
|
expect(wrapper.exists(AnnotationActivityMenu)).toBe(true);
|
|
89
|
-
expect(wrapper.find('ActivityMessage').prop('tagged_message')).toEqual(
|
|
93
|
+
expect(wrapper.find('ForwardRef(withFeatureConsumer(ActivityMessage))').prop('tagged_message')).toEqual(
|
|
90
94
|
mockActivity.item.description.message,
|
|
91
95
|
);
|
|
92
96
|
},
|
|
@@ -31,8 +31,25 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivityMe
|
|
|
31
31
|
expect(wrapper.exists('[data-testid="edit-annotation-activity"]')).toBe(true);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
test('should render the resolve annotation activity menu item if canResolve is true for unresolved item', () => {
|
|
35
|
+
const wrapper = getWrapper({ canResolve: true, status: 'open' });
|
|
36
|
+
|
|
37
|
+
expect(wrapper.exists('[data-testid="resolve-annotation-activity"]')).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('should render the unresolve annotation activity menu item if canResolve is true for resolved item', () => {
|
|
41
|
+
const wrapper = getWrapper({ canResolve: true, status: 'resolved' });
|
|
42
|
+
|
|
43
|
+
expect(wrapper.exists('[data-testid="unresolve-annotation-activity"]')).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
34
46
|
test('should render resin tags', () => {
|
|
35
|
-
const wrapper = getWrapper({
|
|
47
|
+
const wrapper = getWrapper({
|
|
48
|
+
canDelete: true,
|
|
49
|
+
canEdit: true,
|
|
50
|
+
canResolve: true,
|
|
51
|
+
status: 'open',
|
|
52
|
+
});
|
|
36
53
|
|
|
37
54
|
expect(wrapper.find("[data-testid='delete-annotation-activity']").props()).toMatchObject({
|
|
38
55
|
'data-resin-itemid': '123',
|
|
@@ -43,5 +60,22 @@ describe('elements/content-sidebar/ActivityFeed/annotations/AnnotationActivityMe
|
|
|
43
60
|
'data-resin-itemid': '123',
|
|
44
61
|
'data-resin-target': 'activityfeed-annotation-edit',
|
|
45
62
|
});
|
|
63
|
+
|
|
64
|
+
expect(wrapper.find("[data-testid='resolve-annotation-activity']").props()).toMatchObject({
|
|
65
|
+
'data-resin-itemid': '123',
|
|
66
|
+
'data-resin-target': 'activityfeed-annotation-resolve',
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test('should render resin tags for unresolve activity', () => {
|
|
71
|
+
const wrapper = getWrapper({
|
|
72
|
+
canResolve: true,
|
|
73
|
+
status: 'resolved',
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
expect(wrapper.find("[data-testid='unresolve-annotation-activity']").props()).toMatchObject({
|
|
77
|
+
'data-resin-itemid': '123',
|
|
78
|
+
'data-resin-target': 'activityfeed-annotation-unresolve',
|
|
79
|
+
});
|
|
46
80
|
});
|
|
47
81
|
});
|
|
@@ -26,6 +26,11 @@ const messages = defineMessages({
|
|
|
26
26
|
defaultMessage: 'Page {number}',
|
|
27
27
|
description: 'Annotation activity item link shown on annotation activity',
|
|
28
28
|
},
|
|
29
|
+
annotationActivityResolveMenuItem: {
|
|
30
|
+
id: 'be.contentSidebar.activityFeed.annotationActivity.annotationActivityResolveMenuItem',
|
|
31
|
+
defaultMessage: 'Resolve',
|
|
32
|
+
description: 'Text to show on menu item to resolve the annotation comment',
|
|
33
|
+
},
|
|
29
34
|
annotationActivityVersionLink: {
|
|
30
35
|
id: 'be.contentSidebar.activityFeed.annotationActivityVersionLink',
|
|
31
36
|
defaultMessage: 'Version {number}',
|
|
@@ -37,6 +42,11 @@ const messages = defineMessages({
|
|
|
37
42
|
description:
|
|
38
43
|
'Annotation activity item link shown on annotation activity for previous file version that is unavailable',
|
|
39
44
|
},
|
|
45
|
+
annotationActivityUnresolveMenuItem: {
|
|
46
|
+
id: 'be.contentSidebar.activityFeed.annotationActivity.annotationActivityUnresolveMenuItem',
|
|
47
|
+
defaultMessage: 'Unresolve',
|
|
48
|
+
description: 'Text to show on menu item to unresolve the annotation comment',
|
|
49
|
+
},
|
|
40
50
|
});
|
|
41
51
|
|
|
42
52
|
export default messages;
|
|
@@ -4,8 +4,10 @@ import classNames from 'classnames';
|
|
|
4
4
|
import noop from 'lodash/noop';
|
|
5
5
|
import { FormattedMessage } from 'react-intl';
|
|
6
6
|
import TetherComponent from 'react-tether';
|
|
7
|
+
import Checkmark16 from '../../../../icon/line/Checkmark16';
|
|
7
8
|
import Trash16 from '../../../../icon/line/Trash16';
|
|
8
9
|
import Pencil16 from '../../../../icon/line/Pencil16';
|
|
10
|
+
import X16 from '../../../../icon/fill/X16';
|
|
9
11
|
import Avatar from '../Avatar';
|
|
10
12
|
import Media from '../../../../components/media';
|
|
11
13
|
import { MenuItem } from '../../../../components/menu';
|
|
@@ -16,13 +18,14 @@ import UserLink from '../common/user-link';
|
|
|
16
18
|
import ActivityCard from '../ActivityCard';
|
|
17
19
|
import ActivityError from '../common/activity-error';
|
|
18
20
|
import ActivityMessage from '../common/activity-message';
|
|
21
|
+
import ActivityStatus from '../common/activity-status';
|
|
19
22
|
import CommentForm from '../comment-form';
|
|
20
|
-
import { PLACEHOLDER_USER } from '../../../../constants';
|
|
23
|
+
import { COMMENT_STATUS_OPEN, COMMENT_STATUS_RESOLVED, PLACEHOLDER_USER } from '../../../../constants';
|
|
21
24
|
import messages from './messages';
|
|
22
25
|
import type { GetAvatarUrlCallback, GetProfileUrlCallback } from '../../../common/flowTypes';
|
|
23
26
|
import type { Translations } from '../../flowTypes';
|
|
24
27
|
import type { SelectorItems, User } from '../../../../common/types/core';
|
|
25
|
-
import type { BoxCommentPermission,
|
|
28
|
+
import type { ActionItemError, BoxCommentPermission, FeedItemStatus } from '../../../../common/types/feed';
|
|
26
29
|
import './Comment.scss';
|
|
27
30
|
|
|
28
31
|
type Props = {
|
|
@@ -39,8 +42,17 @@ type Props = {
|
|
|
39
42
|
mentionSelectorContacts?: SelectorItems<>,
|
|
40
43
|
modified_at?: string | number,
|
|
41
44
|
onDelete: ({ id: string, permissions?: BoxCommentPermission }) => any,
|
|
42
|
-
onEdit: (
|
|
43
|
-
|
|
45
|
+
onEdit: (
|
|
46
|
+
id: string,
|
|
47
|
+
text?: string,
|
|
48
|
+
status?: FeedItemStatus,
|
|
49
|
+
hasMention: boolean,
|
|
50
|
+
permissions: BoxCommentPermission,
|
|
51
|
+
onSuccess: ?Function,
|
|
52
|
+
onError: ?Function,
|
|
53
|
+
) => void,
|
|
54
|
+
permissions: BoxCommentPermission,
|
|
55
|
+
status?: FeedItemStatus,
|
|
44
56
|
tagged_message: string,
|
|
45
57
|
translatedTaggedMessage?: string,
|
|
46
58
|
translations?: Translations,
|
|
@@ -87,12 +99,17 @@ class Comment extends React.Component<Props, State> {
|
|
|
87
99
|
|
|
88
100
|
commentFormSubmitHandler = (): void => this.setState({ isInputOpen: false, isEditing: false });
|
|
89
101
|
|
|
90
|
-
|
|
102
|
+
handleMessageUpdate = ({ id, text, hasMention }: { hasMention: boolean, id: string, text: string }): void => {
|
|
91
103
|
const { onEdit, permissions } = this.props;
|
|
92
|
-
onEdit(id, text, hasMention, permissions);
|
|
104
|
+
onEdit(id, text, undefined, hasMention, permissions);
|
|
93
105
|
this.commentFormSubmitHandler();
|
|
94
106
|
};
|
|
95
107
|
|
|
108
|
+
handleStatusUpdate = (status: FeedItemStatus): void => {
|
|
109
|
+
const { id, onEdit, permissions } = this.props;
|
|
110
|
+
onEdit(id, undefined, status, false, permissions);
|
|
111
|
+
};
|
|
112
|
+
|
|
96
113
|
render(): React.Node {
|
|
97
114
|
const {
|
|
98
115
|
created_by,
|
|
@@ -110,14 +127,19 @@ class Comment extends React.Component<Props, State> {
|
|
|
110
127
|
getUserProfileUrl,
|
|
111
128
|
getMentionWithQuery,
|
|
112
129
|
mentionSelectorContacts,
|
|
130
|
+
modified_at,
|
|
113
131
|
onEdit,
|
|
132
|
+
status,
|
|
114
133
|
} = this.props;
|
|
115
134
|
const { isConfirmingDelete, isEditing, isInputOpen } = this.state;
|
|
135
|
+
const canDelete = permissions.can_delete;
|
|
136
|
+
const canEdit = onEdit !== noop && permissions.can_edit;
|
|
137
|
+
const canResolve = onEdit !== noop && permissions.can_resolve;
|
|
116
138
|
const createdAtTimestamp = new Date(created_at).getTime();
|
|
117
139
|
const createdByUser = created_by || PLACEHOLDER_USER;
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
const
|
|
140
|
+
const isEdited = modified_at !== undefined && modified_at !== created_at;
|
|
141
|
+
const isMenuVisible = (canDelete || canEdit || canResolve) && !isPending;
|
|
142
|
+
const isResolved = status === COMMENT_STATUS_RESOLVED;
|
|
121
143
|
|
|
122
144
|
return (
|
|
123
145
|
<ActivityCard className="bcs-Comment">
|
|
@@ -144,6 +166,26 @@ class Comment extends React.Component<Props, State> {
|
|
|
144
166
|
'data-resin-component': ACTIVITY_TARGETS.COMMENT_OPTIONS,
|
|
145
167
|
}}
|
|
146
168
|
>
|
|
169
|
+
{canResolve && isResolved && (
|
|
170
|
+
<MenuItem
|
|
171
|
+
data-resin-target={ACTIVITY_TARGETS.COMMENT_OPTIONS_EDIT}
|
|
172
|
+
data-testid="unresolve-comment"
|
|
173
|
+
onClick={() => this.handleStatusUpdate(COMMENT_STATUS_OPEN)}
|
|
174
|
+
>
|
|
175
|
+
<X16 />
|
|
176
|
+
<FormattedMessage {...messages.commentUnresolveMenuItem} />
|
|
177
|
+
</MenuItem>
|
|
178
|
+
)}
|
|
179
|
+
{canResolve && !isResolved && (
|
|
180
|
+
<MenuItem
|
|
181
|
+
data-resin-target={ACTIVITY_TARGETS.COMMENT_OPTIONS_EDIT}
|
|
182
|
+
data-testid="resolve-comment"
|
|
183
|
+
onClick={() => this.handleStatusUpdate(COMMENT_STATUS_RESOLVED)}
|
|
184
|
+
>
|
|
185
|
+
<Checkmark16 />
|
|
186
|
+
<FormattedMessage {...messages.commentResolveMenuItem} />
|
|
187
|
+
</MenuItem>
|
|
188
|
+
)}
|
|
147
189
|
{canEdit && (
|
|
148
190
|
<MenuItem
|
|
149
191
|
data-resin-target={ACTIVITY_TARGETS.COMMENT_OPTIONS_EDIT}
|
|
@@ -187,13 +229,14 @@ class Comment extends React.Component<Props, State> {
|
|
|
187
229
|
<div>
|
|
188
230
|
<ActivityTimestamp date={createdAtTimestamp} />
|
|
189
231
|
</div>
|
|
232
|
+
<ActivityStatus status={status} />
|
|
190
233
|
{isEditing ? (
|
|
191
234
|
<CommentForm
|
|
192
235
|
isDisabled={isDisabled}
|
|
193
236
|
className={classNames('bcs-Comment-editor', {
|
|
194
237
|
'bcs-is-disabled': isDisabled,
|
|
195
238
|
})}
|
|
196
|
-
updateComment={this.
|
|
239
|
+
updateComment={this.handleMessageUpdate}
|
|
197
240
|
isOpen={isInputOpen}
|
|
198
241
|
// $FlowFixMe
|
|
199
242
|
user={currentUser}
|
|
@@ -209,6 +252,7 @@ class Comment extends React.Component<Props, State> {
|
|
|
209
252
|
) : (
|
|
210
253
|
<ActivityMessage
|
|
211
254
|
id={id}
|
|
255
|
+
isEdited={isEdited}
|
|
212
256
|
tagged_message={tagged_message}
|
|
213
257
|
translatedTaggedMessage={translatedTaggedMessage}
|
|
214
258
|
{...translations}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { mount, shallow } from 'enzyme';
|
|
3
|
+
import noop from 'lodash/noop';
|
|
3
4
|
|
|
4
5
|
import Comment from '../Comment';
|
|
5
6
|
import CommentForm from '../../comment-form/CommentForm';
|
|
7
|
+
import { FEED_ITEM_TYPE_TASK } from '../../../../../constants';
|
|
6
8
|
|
|
7
9
|
jest.mock('../../Avatar', () => () => 'Avatar');
|
|
8
10
|
|
|
@@ -13,6 +15,7 @@ const currentUser = {
|
|
|
13
15
|
const approverSelectorContacts = [];
|
|
14
16
|
const mentionSelectorContacts = [];
|
|
15
17
|
const TIME_STRING_SEPT_27_2017 = '2017-09-27T10:40:41-07:00';
|
|
18
|
+
const TIME_STRING_SEPT_28_2017 = '2017-09-28T10:40:41-07:00';
|
|
16
19
|
|
|
17
20
|
const allHandlers = {
|
|
18
21
|
tasks: {
|
|
@@ -48,7 +51,6 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
|
|
|
48
51
|
mentionSelectorContacts={mentionSelectorContacts}
|
|
49
52
|
/>,
|
|
50
53
|
);
|
|
51
|
-
|
|
52
54
|
// validating that the Tooltip and the comment posted time are properly set
|
|
53
55
|
expect(wrapper.find('ActivityTimestamp').prop('date')).toEqual(unixTime);
|
|
54
56
|
|
|
@@ -137,6 +139,73 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
|
|
|
137
139
|
},
|
|
138
140
|
);
|
|
139
141
|
|
|
142
|
+
test.each`
|
|
143
|
+
can_resolve | onEdit | expectedResolveMenuExistance
|
|
144
|
+
${false} | ${noop} | ${false}
|
|
145
|
+
${false} | ${jest.fn()} | ${false}
|
|
146
|
+
${true} | ${noop} | ${false}
|
|
147
|
+
${true} | ${jest.fn()} | ${true}
|
|
148
|
+
`(
|
|
149
|
+
`given can_resolve permission = $can_resolve and onEdit prop = $onEdit, resolve menu existance should be: $expectedResolveMenuExistance`,
|
|
150
|
+
({ can_resolve, onEdit, expectedResolveMenuExistance }) => {
|
|
151
|
+
const comment = {
|
|
152
|
+
created_at: TIME_STRING_SEPT_27_2017,
|
|
153
|
+
created_by: { name: '50 Cent', id: 10 },
|
|
154
|
+
id: '123',
|
|
155
|
+
status: 'open',
|
|
156
|
+
tagged_message: 'test',
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
const wrapper = shallow(
|
|
160
|
+
<Comment
|
|
161
|
+
{...comment}
|
|
162
|
+
approverSelectorContacts={approverSelectorContacts}
|
|
163
|
+
currentUser={currentUser}
|
|
164
|
+
handlers={allHandlers}
|
|
165
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
166
|
+
onDelete={jest.fn()}
|
|
167
|
+
onEdit={onEdit}
|
|
168
|
+
permissions={{ can_resolve }}
|
|
169
|
+
/>,
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
expect(wrapper.find('[data-testid="resolve-comment"]').exists()).toBe(expectedResolveMenuExistance);
|
|
173
|
+
},
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
test.each`
|
|
177
|
+
status | expectedResolveMenuExistance | expectedUnresolvedMenuExistance
|
|
178
|
+
${'open'} | ${true} | ${false}
|
|
179
|
+
${'resolved'} | ${false} | ${true}
|
|
180
|
+
`(
|
|
181
|
+
`given status = $status, resolve menu existance should be: $expectedResolveMenuExistance and unresolve menu existance should be: $expectedUnresolvedMenuExistance`,
|
|
182
|
+
({ status, expectedResolveMenuExistance, expectedUnresolvedMenuExistance }) => {
|
|
183
|
+
const comment = {
|
|
184
|
+
created_at: TIME_STRING_SEPT_27_2017,
|
|
185
|
+
created_by: { name: '50 Cent', id: 10 },
|
|
186
|
+
id: '123',
|
|
187
|
+
permissions: { can_resolve: true },
|
|
188
|
+
tagged_message: 'test',
|
|
189
|
+
status,
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const wrapper = shallow(
|
|
193
|
+
<Comment
|
|
194
|
+
{...comment}
|
|
195
|
+
approverSelectorContacts={approverSelectorContacts}
|
|
196
|
+
currentUser={currentUser}
|
|
197
|
+
handlers={allHandlers}
|
|
198
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
199
|
+
onDelete={jest.fn()}
|
|
200
|
+
onEdit={jest.fn()}
|
|
201
|
+
/>,
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
expect(wrapper.find('[data-testid="resolve-comment"]').exists()).toBe(expectedResolveMenuExistance);
|
|
205
|
+
expect(wrapper.find('[data-testid="unresolve-comment"]').exists()).toBe(expectedUnresolvedMenuExistance);
|
|
206
|
+
},
|
|
207
|
+
);
|
|
208
|
+
|
|
140
209
|
test('should not show actions menu when comment is pending', () => {
|
|
141
210
|
const comment = {
|
|
142
211
|
created_at: TIME_STRING_SEPT_27_2017,
|
|
@@ -166,7 +235,7 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
|
|
|
166
235
|
created_at: TIME_STRING_SEPT_27_2017,
|
|
167
236
|
tagged_message: 'test',
|
|
168
237
|
created_by: { name: '50 Cent', id: 10 },
|
|
169
|
-
type:
|
|
238
|
+
type: FEED_ITEM_TYPE_TASK,
|
|
170
239
|
permissions: { can_edit: true, can_delete: true },
|
|
171
240
|
};
|
|
172
241
|
const mockOnEdit = jest.fn();
|
|
@@ -199,18 +268,61 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
|
|
|
199
268
|
instance.commentFormFocusHandler();
|
|
200
269
|
expect(wrapper.state('isInputOpen')).toBe(true);
|
|
201
270
|
|
|
202
|
-
const
|
|
203
|
-
instance.
|
|
271
|
+
const updateMessagePayload = { id: '000', hasMention: true, text: 'updated message' };
|
|
272
|
+
instance.handleMessageUpdate(updateMessagePayload);
|
|
204
273
|
expect(wrapper.state('isEditing')).toBe(false);
|
|
205
274
|
expect(wrapper.state('isInputOpen')).toBe(false);
|
|
206
275
|
expect(mockOnEdit).toHaveBeenCalledWith(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
276
|
+
updateMessagePayload.id,
|
|
277
|
+
updateMessagePayload.text,
|
|
278
|
+
undefined,
|
|
279
|
+
updateMessagePayload.hasMention,
|
|
210
280
|
comment.permissions,
|
|
211
281
|
);
|
|
212
282
|
});
|
|
213
283
|
|
|
284
|
+
test.each`
|
|
285
|
+
status | menuItemTestId | expectedNewStatus
|
|
286
|
+
${'open'} | ${'resolve-comment'} | ${'resolved'}
|
|
287
|
+
${'resolved'} | ${'unresolve-comment'} | ${'open'}
|
|
288
|
+
`(
|
|
289
|
+
`should allow user to resolve / unresolve if they have resolve permissions, edit handler is defined and given status is $status`,
|
|
290
|
+
({ status, menuItemTestId, expectedNewStatus }) => {
|
|
291
|
+
const comment = {
|
|
292
|
+
created_at: TIME_STRING_SEPT_27_2017,
|
|
293
|
+
created_by: { name: '50 Cent', id: 10 },
|
|
294
|
+
hasMention: false,
|
|
295
|
+
id: '123',
|
|
296
|
+
permissions: { can_resolve: true, can_edit: false, can_delete: false },
|
|
297
|
+
tagged_message: 'test',
|
|
298
|
+
type: FEED_ITEM_TYPE_TASK,
|
|
299
|
+
};
|
|
300
|
+
const onEdit = jest.fn();
|
|
301
|
+
const wrapper = mount(
|
|
302
|
+
<Comment
|
|
303
|
+
{...comment}
|
|
304
|
+
approverSelectorContacts={approverSelectorContacts}
|
|
305
|
+
currentUser={currentUser}
|
|
306
|
+
handlers={allHandlers}
|
|
307
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
308
|
+
onEdit={onEdit}
|
|
309
|
+
status={status}
|
|
310
|
+
/>,
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
wrapper.find('button[data-testid="comment-actions-menu"]').simulate('click');
|
|
314
|
+
wrapper.find(`MenuItem[data-testid="${menuItemTestId}"]`).simulate('click');
|
|
315
|
+
|
|
316
|
+
expect(onEdit).toBeCalledWith(
|
|
317
|
+
comment.id,
|
|
318
|
+
undefined,
|
|
319
|
+
expectedNewStatus,
|
|
320
|
+
comment.hasMention,
|
|
321
|
+
comment.permissions,
|
|
322
|
+
);
|
|
323
|
+
},
|
|
324
|
+
);
|
|
325
|
+
|
|
214
326
|
test('should render an error when one is defined', () => {
|
|
215
327
|
const comment = {
|
|
216
328
|
created_at: TIME_STRING_SEPT_27_2017,
|
|
@@ -271,4 +383,37 @@ describe('elements/content-sidebar/ActivityFeed/comment/Comment', () => {
|
|
|
271
383
|
|
|
272
384
|
expect(onActionSpy).toHaveBeenCalledTimes(1);
|
|
273
385
|
});
|
|
386
|
+
|
|
387
|
+
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}
|
|
392
|
+
`(
|
|
393
|
+
`given created_at = $created_at and modified_at = $modified_at, isEdited prop on ActivityMessage should be: $expectedIsEdited`,
|
|
394
|
+
({ created_at, modified_at, expectedIsEdited }) => {
|
|
395
|
+
const comment = {
|
|
396
|
+
created_at,
|
|
397
|
+
modified_at,
|
|
398
|
+
tagged_message: 'test',
|
|
399
|
+
created_by: { name: '50 Cent', id: 10 },
|
|
400
|
+
permissions: { can_delete: true, can_edit: true },
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
const wrapper = shallow(
|
|
404
|
+
<Comment
|
|
405
|
+
id="123"
|
|
406
|
+
{...comment}
|
|
407
|
+
approverSelectorContacts={approverSelectorContacts}
|
|
408
|
+
currentUser={currentUser}
|
|
409
|
+
handlers={allHandlers}
|
|
410
|
+
mentionSelectorContacts={mentionSelectorContacts}
|
|
411
|
+
/>,
|
|
412
|
+
);
|
|
413
|
+
|
|
414
|
+
expect(wrapper.find('ForwardRef(withFeatureConsumer(ActivityMessage))').prop('isEdited')).toEqual(
|
|
415
|
+
expectedIsEdited,
|
|
416
|
+
);
|
|
417
|
+
},
|
|
418
|
+
);
|
|
274
419
|
});
|