box-ui-elements 16.0.0-beta.8 → 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 +180 -27
- package/es/api/Annotations.js.flow +150 -14
- 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 -69
- 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 -10
- 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/fill/UserSettings16.js +38 -0
- package/es/icon/fill/UserSettings16.js.flow +38 -0
- package/es/icon/fill/UserSettings16.js.map +1 -0
- package/es/icon/fill/UserSettings16.stories.js +13 -0
- package/es/icon/fill/UserSettings16.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/fill/UserSettings16.d.ts +13 -0
- package/es/src/icon/fill/UserSettings16.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 +150 -14
- 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 +217 -11
- package/src/api/__tests__/Feed.test.js +699 -86
- 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 -10
- 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/fill/UserSettings16.js.flow +38 -0
- package/src/icon/fill/UserSettings16.stories.tsx +13 -0
- package/src/icon/fill/UserSettings16.tsx +36 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/content-sidebar/DetailsSidebar.js"],"names":["React","flow","getProp","noop","FormattedMessage","API","messages","SidebarAccessStats","SidebarClassification","SidebarContent","SidebarFileProperties","SidebarNotices","SidebarSection","SidebarVersions","EVENT_JS_READY","getBadItemError","mark","SECTION_TARGETS","SIDEBAR_FIELDS_TO_FETCH","withAPIContext","withErrorBoundary","withLogger","HTTP_STATUS_CODE_FORBIDDEN","ORIGIN_DETAILS_SIDEBAR","IS_ERROR_DISPLAYED","SIDEBAR_VIEW_DETAILS","MARK_NAME_JS_READY","DetailsSidebar","props","file","setState","fileError","undefined","e","code","onError","inlineError","title","fileDescriptionInlineErrorTitleMessage","content","defaultInlineErrorContentMessage","newDescription","api","state","description","getFileAPI","setFileDescription","descriptionChangeSuccessCallback","descriptionChangeErrorCallback","hasAccessStats","isForbidden","accessStatsError","error","fileAccessStatsPermissionsError","maskError","errorHeader","fileAccessStatsErrorHeaderMessage","errorSubHeader","defaultErrorMaskSubHeaderMessage","isLoadingAccessStats","accessStats","logger","onReadyMetric","endMarkName","fetchFile","fetchAccessStats","prevHasAccessStats","hasAccessStatsChanged","successCallback","fetchFileSuccessCallback","errorCallback","fetchFileErrorCallback","fileId","getFile","fields","getFileAccessStatsAPI","getFileAccessStats","fetchAccessStatsSuccessCallback","fetchAccessStatsErrorCallback","classification","elementId","hasProperties","hasNotices","hasClassification","hasRetentionPolicy","hasVersions","onAccessStatsClick","onVersionHistoryClick","onClassificationClick","onRetentionPolicyExtendClick","retentionPolicy","sidebarDetailsTitle","FILE_PROPERTIES","sidebarProperties","onDescriptionChange","PureComponent","DetailsSidebarComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Details sidebar component\n * @author Box\n */\n\nimport React from 'react';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\nimport API from '../../api';\nimport messages from '../common/messages';\nimport SidebarAccessStats from './SidebarAccessStats';\nimport SidebarClassification from './SidebarClassification';\nimport SidebarContent from './SidebarContent';\nimport SidebarFileProperties from './SidebarFileProperties';\nimport SidebarNotices from './SidebarNotices';\nimport SidebarSection from './SidebarSection';\nimport SidebarVersions from './SidebarVersions';\nimport { EVENT_JS_READY } from '../common/logger/constants';\nimport { getBadItemError } from '../../utils/error';\nimport { mark } from '../../utils/performance';\nimport { SECTION_TARGETS } from '../common/interactionTargets';\nimport { SIDEBAR_FIELDS_TO_FETCH } from '../../utils/fields';\nimport { withAPIContext } from '../common/api-context';\nimport { withErrorBoundary } from '../common/error-boundary';\nimport { withLogger } from '../common/logger';\nimport {\n HTTP_STATUS_CODE_FORBIDDEN,\n ORIGIN_DETAILS_SIDEBAR,\n IS_ERROR_DISPLAYED,\n SIDEBAR_VIEW_DETAILS,\n} from '../../constants';\nimport type { ClassificationInfo, FileAccessStats, Errors } from './flowTypes';\nimport type { WithLoggerProps } from '../../common/types/logging';\nimport type { ElementsErrorCallback, ErrorContextProps, ElementsXhrError } from '../../common/types/api';\nimport type { BoxItem } from '../../common/types/core';\nimport './DetailsSidebar.scss';\n\ntype ExternalProps = {\n classification?: ClassificationInfo,\n elementId: string,\n fileId: string,\n hasAccessStats?: boolean,\n hasClassification?: boolean,\n hasNotices?: boolean,\n hasProperties?: boolean,\n hasRetentionPolicy?: boolean,\n hasSidebarInitialized?: boolean,\n hasVersions?: boolean,\n onAccessStatsClick?: Function,\n onClassificationClick?: (e: SyntheticEvent<HTMLButtonElement>) => void,\n onRetentionPolicyExtendClick?: Function,\n onVersionHistoryClick?: Function,\n retentionPolicy?: Object,\n} & ErrorContextProps &\n WithLoggerProps;\ntype Props = {\n api: API,\n} & ExternalProps &\n ErrorContextProps &\n WithLoggerProps;\n\ntype State = {\n accessStats?: FileAccessStats,\n accessStatsError?: Errors,\n file?: BoxItem,\n fileError?: Errors,\n isLoadingAccessStats: boolean,\n};\n\nconst MARK_NAME_JS_READY = `${ORIGIN_DETAILS_SIDEBAR}_${EVENT_JS_READY}`;\n\nmark(MARK_NAME_JS_READY);\n\nclass DetailsSidebar extends React.PureComponent<Props, State> {\n static defaultProps = {\n hasNotices: false,\n hasProperties: false,\n hasAccessStats: false,\n hasClassification: false,\n hasRetentionPolicy: false,\n hasVersions: false,\n onError: noop,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isLoadingAccessStats: false,\n };\n const { logger } = this.props;\n logger.onReadyMetric({\n endMarkName: MARK_NAME_JS_READY,\n });\n }\n\n componentDidMount() {\n this.fetchFile();\n if (this.props.hasAccessStats) {\n this.fetchAccessStats();\n }\n }\n\n componentDidUpdate({ hasAccessStats: prevHasAccessStats }: Props) {\n const { hasAccessStats } = this.props;\n // Component visibility props such as hasAccessStats can sometimes be flipped after an async call\n const hasAccessStatsChanged = prevHasAccessStats !== hasAccessStats;\n if (hasAccessStatsChanged) {\n if (hasAccessStats) {\n this.fetchAccessStats();\n } else {\n this.setState({\n isLoadingAccessStats: false,\n accessStats: undefined,\n accessStatsError: undefined,\n });\n }\n }\n }\n\n /**\n * File description update callback\n *\n * @private\n * @param {BoxItem} file - Updated file object\n * @return {void}\n */\n descriptionChangeSuccessCallback = (file: BoxItem): void => {\n this.setState({ file, fileError: undefined });\n };\n\n /**\n * Fetches a file with the fields needed for details sidebar\n *\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n fetchFile(\n successCallback: (file: BoxItem) => void = this.fetchFileSuccessCallback,\n errorCallback: ElementsErrorCallback = this.fetchFileErrorCallback,\n ): void {\n const { api, fileId }: Props = this.props;\n api.getFileAPI().getFile(fileId, successCallback, errorCallback, {\n fields: SIDEBAR_FIELDS_TO_FETCH, // TODO: replace this with DETAILS_SIDEBAR_FIELDS_TO_FETCH as we do not need all the sidebar fields\n });\n }\n\n /**\n * Handles a successful file fetch\n *\n * @param {Object} file - the box file\n * @return {void}\n */\n fetchFileSuccessCallback = (file: BoxItem) => {\n this.setState({\n file,\n fileError: undefined,\n });\n };\n\n /**\n * Handles a failed file fetch\n *\n * @private\n * @param {Error} e - API error\n * @param {string} code - error code\n * @return {void}\n */\n fetchFileErrorCallback = (e: ElementsXhrError, code: string) => {\n // TODO: handle the error properly (probably with maskError) once files call split out\n this.setState({\n file: undefined,\n });\n\n this.props.onError(e, code, {\n e,\n });\n };\n\n /**\n * Handles a failed file description update\n *\n * @private\n * @param {BoxItem} file - Original file object\n * @return {void}\n */\n descriptionChangeErrorCallback = (file: BoxItem): void => {\n // Reset the state back to the original description since the API call failed\n this.setState({\n file,\n fileError: {\n inlineError: {\n title: messages.fileDescriptionInlineErrorTitleMessage,\n content: messages.defaultInlineErrorContentMessage,\n },\n },\n });\n };\n\n /**\n * Function to update file description\n *\n * @private\n * @param {string} newDescription - New file description\n * @return {void}\n */\n onDescriptionChange = (newDescription: string): void => {\n const { api }: Props = this.props;\n const { file }: State = this.state;\n if (!file) {\n throw getBadItemError();\n }\n\n const { description }: BoxItem = file;\n if (newDescription === description) {\n return;\n }\n\n api.getFileAPI().setFileDescription(\n file,\n newDescription,\n this.descriptionChangeSuccessCallback,\n this.descriptionChangeErrorCallback,\n );\n };\n\n /**\n * Handles a failed file access stats fetch\n *\n * @private\n * @param {Error} e - API error\n * @param {string} code - error code\n * @return {void}\n */\n fetchAccessStatsErrorCallback = (e: ElementsXhrError, code: string) => {\n if (!this.props.hasAccessStats) {\n return;\n }\n\n const isForbidden = getProp(e, 'status') === HTTP_STATUS_CODE_FORBIDDEN;\n let accessStatsError;\n\n if (isForbidden) {\n accessStatsError = {\n error: messages.fileAccessStatsPermissionsError,\n };\n } else {\n accessStatsError = {\n maskError: {\n errorHeader: messages.fileAccessStatsErrorHeaderMessage,\n errorSubHeader: messages.defaultErrorMaskSubHeaderMessage,\n },\n };\n }\n\n this.setState({\n isLoadingAccessStats: false,\n accessStats: undefined,\n accessStatsError,\n });\n\n this.props.onError(e, code, {\n e,\n [IS_ERROR_DISPLAYED]: !isForbidden,\n });\n };\n\n /**\n * File access stats fetch success callback\n *\n * @private\n * @param {Object} accessStats - access stats for a file\n * @return {void}\n */\n fetchAccessStatsSuccessCallback = (accessStats: FileAccessStats): void => {\n if (!this.props.hasAccessStats) {\n return;\n }\n\n this.setState({\n accessStats,\n accessStatsError: undefined,\n isLoadingAccessStats: false,\n });\n };\n\n /**\n * Fetches the access stats for a file\n *\n * @private\n * @return {void}\n */\n fetchAccessStats(): void {\n const { api, fileId }: Props = this.props;\n const { isLoadingAccessStats } = this.state;\n\n if (isLoadingAccessStats) {\n return;\n }\n\n this.setState({ isLoadingAccessStats: true });\n api.getFileAccessStatsAPI(false).getFileAccessStats(\n fileId,\n this.fetchAccessStatsSuccessCallback,\n this.fetchAccessStatsErrorCallback,\n );\n }\n\n refresh(): void {\n this.fetchAccessStats();\n }\n\n render() {\n const {\n classification,\n elementId,\n hasProperties,\n hasNotices,\n hasAccessStats,\n hasClassification,\n hasRetentionPolicy,\n hasVersions,\n onAccessStatsClick,\n onVersionHistoryClick,\n onClassificationClick,\n onRetentionPolicyExtendClick,\n retentionPolicy,\n }: Props = this.props;\n\n const { accessStats, accessStatsError, file, fileError, isLoadingAccessStats }: State = this.state;\n\n // TODO: Add loading indicator and handle errors once file call is split out\n return (\n <SidebarContent\n className=\"bcs-details\"\n elementId={elementId}\n sidebarView={SIDEBAR_VIEW_DETAILS}\n title={<FormattedMessage {...messages.sidebarDetailsTitle} />}\n >\n {file && hasNotices && (\n <div className=\"bcs-DetailsSidebar-notices\">\n <SidebarNotices file={file} />\n </div>\n )}\n {file && hasClassification && (\n <SidebarClassification classification={classification} file={file} onEdit={onClassificationClick} />\n )}\n {file && hasAccessStats && (\n <SidebarAccessStats\n accessStats={accessStats}\n file={file}\n onAccessStatsClick={onAccessStatsClick}\n {...accessStatsError}\n />\n )}\n {file && hasProperties && (\n <SidebarSection\n interactionTarget={SECTION_TARGETS.FILE_PROPERTIES}\n title={<FormattedMessage {...messages.sidebarProperties} />}\n >\n {hasVersions && <SidebarVersions file={file} onVersionHistoryClick={onVersionHistoryClick} />}\n <SidebarFileProperties\n file={file}\n onDescriptionChange={this.onDescriptionChange}\n {...fileError}\n hasRetentionPolicy={hasRetentionPolicy}\n isLoading={isLoadingAccessStats}\n onRetentionPolicyExtendClick={onRetentionPolicyExtendClick}\n retentionPolicy={retentionPolicy}\n />\n </SidebarSection>\n )}\n </SidebarContent>\n );\n }\n}\n\nexport type DetailsSidebarProps = ExternalProps;\nexport { DetailsSidebar as DetailsSidebarComponent };\nexport default flow([withLogger(ORIGIN_DETAILS_SIDEBAR), withErrorBoundary(ORIGIN_DETAILS_SIDEBAR), withAPIContext])(\n DetailsSidebar,\n);\n"],"file":"DetailsSidebar.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/content-sidebar/DetailsSidebar.js"],"names":["React","flow","getProp","noop","FormattedMessage","API","messages","SidebarAccessStats","SidebarClassification","SidebarContentInsights","SidebarContent","SidebarFileProperties","SidebarNotices","SidebarSection","SidebarVersions","EVENT_JS_READY","getBadItemError","mark","SECTION_TARGETS","SIDEBAR_FIELDS_TO_FETCH","withAPIContext","withErrorBoundary","withLogger","HTTP_STATUS_CODE_FORBIDDEN","ORIGIN_DETAILS_SIDEBAR","IS_ERROR_DISPLAYED","SIDEBAR_VIEW_DETAILS","MARK_NAME_JS_READY","DetailsSidebar","props","file","setState","fileError","undefined","e","code","onError","inlineError","title","fileDescriptionInlineErrorTitleMessage","content","defaultInlineErrorContentMessage","newDescription","api","state","description","getFileAPI","setFileDescription","descriptionChangeSuccessCallback","descriptionChangeErrorCallback","hasAccessStats","isForbidden","accessStatsError","error","fileAccessStatsPermissionsError","maskError","errorHeader","fileAccessStatsErrorHeaderMessage","errorSubHeader","defaultErrorMaskSubHeaderMessage","isLoadingAccessStats","accessStats","logger","onReadyMetric","endMarkName","hasContentInsights","fetchContentInsights","fetchFile","fetchAccessStats","prevHasAccessStats","prevHasContentInsights","hasAccessStatsChanged","hasContentInsightsChanged","successCallback","fetchFileSuccessCallback","errorCallback","fetchFileErrorCallback","fileId","getFile","fields","getFileAccessStatsAPI","getFileAccessStats","fetchAccessStatsSuccessCallback","fetchAccessStatsErrorCallback","classification","contentInsights","elementId","hasProperties","hasNotices","hasClassification","hasRetentionPolicy","hasVersions","onAccessStatsClick","onVersionHistoryClick","onClassificationClick","onContentInsightsClick","onRetentionPolicyExtendClick","retentionPolicy","sidebarDetailsTitle","FILE_PROPERTIES","sidebarProperties","onDescriptionChange","PureComponent","DetailsSidebarComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Details sidebar component\n * @author Box\n */\n\nimport React from 'react';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\nimport API from '../../api';\nimport messages from '../common/messages';\nimport SidebarAccessStats from './SidebarAccessStats';\nimport SidebarClassification from './SidebarClassification';\n// $FlowFixMe typescript component\nimport SidebarContentInsights from './SidebarContentInsights';\nimport SidebarContent from './SidebarContent';\nimport SidebarFileProperties from './SidebarFileProperties';\nimport SidebarNotices from './SidebarNotices';\nimport SidebarSection from './SidebarSection';\nimport SidebarVersions from './SidebarVersions';\nimport { EVENT_JS_READY } from '../common/logger/constants';\nimport { getBadItemError } from '../../utils/error';\nimport { mark } from '../../utils/performance';\nimport { SECTION_TARGETS } from '../common/interactionTargets';\nimport { SIDEBAR_FIELDS_TO_FETCH } from '../../utils/fields';\nimport { withAPIContext } from '../common/api-context';\nimport { withErrorBoundary } from '../common/error-boundary';\nimport { withLogger } from '../common/logger';\nimport {\n HTTP_STATUS_CODE_FORBIDDEN,\n ORIGIN_DETAILS_SIDEBAR,\n IS_ERROR_DISPLAYED,\n SIDEBAR_VIEW_DETAILS,\n} from '../../constants';\nimport type { Errors } from '../common/flowTypes';\nimport type { ClassificationInfo, ContentInsights, FileAccessStats } from './flowTypes';\nimport type { WithLoggerProps } from '../../common/types/logging';\nimport type { ElementsErrorCallback, ErrorContextProps, ElementsXhrError } from '../../common/types/api';\nimport type { BoxItem } from '../../common/types/core';\nimport './DetailsSidebar.scss';\n\ntype ExternalProps = {\n classification?: ClassificationInfo,\n contentInsights?: ContentInsights,\n elementId: string,\n fetchContentInsights?: () => void,\n fileId: string,\n hasAccessStats?: boolean,\n hasClassification?: boolean,\n hasContentInsights?: boolean,\n hasNotices?: boolean,\n hasProperties?: boolean,\n hasRetentionPolicy?: boolean,\n hasSidebarInitialized?: boolean,\n hasVersions?: boolean,\n onAccessStatsClick?: Function,\n onClassificationClick?: (e: SyntheticEvent<HTMLButtonElement>) => void,\n onContentInsightsClick?: () => void,\n onRetentionPolicyExtendClick?: Function,\n onVersionHistoryClick?: Function,\n retentionPolicy?: Object,\n} & ErrorContextProps &\n WithLoggerProps;\ntype Props = {\n api: API,\n} & ExternalProps &\n ErrorContextProps &\n WithLoggerProps;\n\ntype State = {\n accessStats?: FileAccessStats,\n accessStatsError?: Errors,\n file?: BoxItem,\n fileError?: Errors,\n isLoadingAccessStats: boolean,\n};\n\nconst MARK_NAME_JS_READY = `${ORIGIN_DETAILS_SIDEBAR}_${EVENT_JS_READY}`;\n\nmark(MARK_NAME_JS_READY);\n\nclass DetailsSidebar extends React.PureComponent<Props, State> {\n static defaultProps = {\n hasNotices: false,\n hasProperties: false,\n hasAccessStats: false,\n hasClassification: false,\n hasRetentionPolicy: false,\n hasVersions: false,\n onError: noop,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = {\n isLoadingAccessStats: false,\n };\n const { logger } = this.props;\n logger.onReadyMetric({\n endMarkName: MARK_NAME_JS_READY,\n });\n }\n\n componentDidMount() {\n const { hasAccessStats, hasContentInsights, fetchContentInsights } = this.props;\n\n this.fetchFile();\n if (hasAccessStats) {\n this.fetchAccessStats();\n }\n\n if (hasContentInsights && fetchContentInsights) {\n fetchContentInsights();\n }\n }\n\n componentDidUpdate({ hasAccessStats: prevHasAccessStats, hasContentInsights: prevHasContentInsights }: Props) {\n const { hasAccessStats, hasContentInsights, fetchContentInsights } = this.props;\n // Component visibility props such as hasAccessStats can sometimes be flipped after an async call\n const hasAccessStatsChanged = prevHasAccessStats !== hasAccessStats;\n const hasContentInsightsChanged = prevHasContentInsights !== hasContentInsights;\n\n if (hasAccessStatsChanged) {\n if (hasAccessStats) {\n this.fetchAccessStats();\n } else {\n this.setState({\n isLoadingAccessStats: false,\n accessStats: undefined,\n accessStatsError: undefined,\n });\n }\n }\n\n if (hasContentInsightsChanged && hasContentInsights && fetchContentInsights) {\n fetchContentInsights();\n }\n }\n\n /**\n * File description update callback\n *\n * @private\n * @param {BoxItem} file - Updated file object\n * @return {void}\n */\n descriptionChangeSuccessCallback = (file: BoxItem): void => {\n this.setState({ file, fileError: undefined });\n };\n\n /**\n * Fetches a file with the fields needed for details sidebar\n *\n * @param {Function} successCallback - the success callback\n * @param {Function} errorCallback - the error callback\n * @return {void}\n */\n fetchFile(\n successCallback: (file: BoxItem) => void = this.fetchFileSuccessCallback,\n errorCallback: ElementsErrorCallback = this.fetchFileErrorCallback,\n ): void {\n const { api, fileId }: Props = this.props;\n api.getFileAPI().getFile(fileId, successCallback, errorCallback, {\n fields: SIDEBAR_FIELDS_TO_FETCH, // TODO: replace this with DETAILS_SIDEBAR_FIELDS_TO_FETCH as we do not need all the sidebar fields\n });\n }\n\n /**\n * Handles a successful file fetch\n *\n * @param {Object} file - the box file\n * @return {void}\n */\n fetchFileSuccessCallback = (file: BoxItem) => {\n this.setState({\n file,\n fileError: undefined,\n });\n };\n\n /**\n * Handles a failed file fetch\n *\n * @private\n * @param {Error} e - API error\n * @param {string} code - error code\n * @return {void}\n */\n fetchFileErrorCallback = (e: ElementsXhrError, code: string) => {\n // TODO: handle the error properly (probably with maskError) once files call split out\n this.setState({\n file: undefined,\n });\n\n this.props.onError(e, code, {\n e,\n });\n };\n\n /**\n * Handles a failed file description update\n *\n * @private\n * @param {BoxItem} file - Original file object\n * @return {void}\n */\n descriptionChangeErrorCallback = (file: BoxItem): void => {\n // Reset the state back to the original description since the API call failed\n this.setState({\n file,\n fileError: {\n inlineError: {\n title: messages.fileDescriptionInlineErrorTitleMessage,\n content: messages.defaultInlineErrorContentMessage,\n },\n },\n });\n };\n\n /**\n * Function to update file description\n *\n * @private\n * @param {string} newDescription - New file description\n * @return {void}\n */\n onDescriptionChange = (newDescription: string): void => {\n const { api }: Props = this.props;\n const { file }: State = this.state;\n if (!file) {\n throw getBadItemError();\n }\n\n const { description }: BoxItem = file;\n if (newDescription === description) {\n return;\n }\n\n api.getFileAPI().setFileDescription(\n file,\n newDescription,\n this.descriptionChangeSuccessCallback,\n this.descriptionChangeErrorCallback,\n );\n };\n\n /**\n * Handles a failed file access stats fetch\n *\n * @private\n * @param {Error} e - API error\n * @param {string} code - error code\n * @return {void}\n */\n fetchAccessStatsErrorCallback = (e: ElementsXhrError, code: string) => {\n if (!this.props.hasAccessStats) {\n return;\n }\n\n const isForbidden = getProp(e, 'status') === HTTP_STATUS_CODE_FORBIDDEN;\n let accessStatsError;\n\n if (isForbidden) {\n accessStatsError = {\n error: messages.fileAccessStatsPermissionsError,\n };\n } else {\n accessStatsError = {\n maskError: {\n errorHeader: messages.fileAccessStatsErrorHeaderMessage,\n errorSubHeader: messages.defaultErrorMaskSubHeaderMessage,\n },\n };\n }\n\n this.setState({\n isLoadingAccessStats: false,\n accessStats: undefined,\n accessStatsError,\n });\n\n this.props.onError(e, code, {\n e,\n [IS_ERROR_DISPLAYED]: !isForbidden,\n });\n };\n\n /**\n * File access stats fetch success callback\n *\n * @private\n * @param {Object} accessStats - access stats for a file\n * @return {void}\n */\n fetchAccessStatsSuccessCallback = (accessStats: FileAccessStats): void => {\n if (!this.props.hasAccessStats) {\n return;\n }\n\n this.setState({\n accessStats,\n accessStatsError: undefined,\n isLoadingAccessStats: false,\n });\n };\n\n /**\n * Fetches the access stats for a file\n *\n * @private\n * @return {void}\n */\n fetchAccessStats(): void {\n const { api, fileId }: Props = this.props;\n const { isLoadingAccessStats } = this.state;\n\n if (isLoadingAccessStats) {\n return;\n }\n\n this.setState({ isLoadingAccessStats: true });\n api.getFileAccessStatsAPI(false).getFileAccessStats(\n fileId,\n this.fetchAccessStatsSuccessCallback,\n this.fetchAccessStatsErrorCallback,\n );\n }\n\n refresh(): void {\n this.fetchAccessStats();\n }\n\n render() {\n const {\n classification,\n contentInsights,\n elementId,\n hasProperties,\n hasNotices,\n hasAccessStats,\n hasClassification,\n hasContentInsights,\n hasRetentionPolicy,\n hasVersions,\n onAccessStatsClick,\n onVersionHistoryClick,\n onClassificationClick,\n onContentInsightsClick,\n onRetentionPolicyExtendClick,\n retentionPolicy,\n }: Props = this.props;\n\n const { accessStats, accessStatsError, file, fileError, isLoadingAccessStats }: State = this.state;\n\n // TODO: Add loading indicator and handle errors once file call is split out\n return (\n <SidebarContent\n className=\"bcs-details\"\n elementId={elementId}\n sidebarView={SIDEBAR_VIEW_DETAILS}\n title={<FormattedMessage {...messages.sidebarDetailsTitle} />}\n >\n {file && hasNotices && (\n <div className=\"bcs-DetailsSidebar-notices\">\n <SidebarNotices file={file} />\n </div>\n )}\n {file && hasClassification && (\n <SidebarClassification classification={classification} file={file} onEdit={onClassificationClick} />\n )}\n {file && hasAccessStats && (\n <SidebarAccessStats\n accessStats={accessStats}\n file={file}\n onAccessStatsClick={onAccessStatsClick}\n {...accessStatsError}\n />\n )}\n {file && hasContentInsights && (\n <SidebarContentInsights\n contentInsights={contentInsights}\n onContentInsightsClick={onContentInsightsClick}\n />\n )}\n {file && hasProperties && (\n <SidebarSection\n interactionTarget={SECTION_TARGETS.FILE_PROPERTIES}\n title={<FormattedMessage {...messages.sidebarProperties} />}\n >\n {hasVersions && <SidebarVersions file={file} onVersionHistoryClick={onVersionHistoryClick} />}\n <SidebarFileProperties\n file={file}\n onDescriptionChange={this.onDescriptionChange}\n {...fileError}\n hasRetentionPolicy={hasRetentionPolicy}\n isLoading={isLoadingAccessStats}\n onRetentionPolicyExtendClick={onRetentionPolicyExtendClick}\n retentionPolicy={retentionPolicy}\n />\n </SidebarSection>\n )}\n </SidebarContent>\n );\n }\n}\n\nexport type DetailsSidebarProps = ExternalProps;\nexport { DetailsSidebar as DetailsSidebarComponent };\nexport default flow([withLogger(ORIGIN_DETAILS_SIDEBAR), withErrorBoundary(ORIGIN_DETAILS_SIDEBAR), withAPIContext])(\n DetailsSidebar,\n);\n"],"file":"DetailsSidebar.js"}
|
|
@@ -35,6 +35,7 @@ import LocalStore from '../../utils/LocalStore';
|
|
|
35
35
|
import SidebarNav from './SidebarNav';
|
|
36
36
|
import SidebarPanels from './SidebarPanels';
|
|
37
37
|
import SidebarUtils from './SidebarUtils';
|
|
38
|
+
import { withCurrentUser } from '../common/current-user';
|
|
38
39
|
import { withFeatureConsumer } from '../common/feature-checking';
|
|
39
40
|
export var SIDEBAR_FORCE_KEY = 'bcs.force';
|
|
40
41
|
export var SIDEBAR_FORCE_VALUE_CLOSED = 'closed';
|
|
@@ -207,6 +208,7 @@ function (_React$Component) {
|
|
|
207
208
|
additionalTabs = _this$props3.additionalTabs,
|
|
208
209
|
className = _this$props3.className,
|
|
209
210
|
currentUser = _this$props3.currentUser,
|
|
211
|
+
currentUserError = _this$props3.currentUserError,
|
|
210
212
|
detailsSidebarProps = _this$props3.detailsSidebarProps,
|
|
211
213
|
file = _this$props3.file,
|
|
212
214
|
fileId = _this$props3.fileId,
|
|
@@ -250,6 +252,7 @@ function (_React$Component) {
|
|
|
250
252
|
}), React.createElement(SidebarPanels, {
|
|
251
253
|
activitySidebarProps: activitySidebarProps,
|
|
252
254
|
currentUser: currentUser,
|
|
255
|
+
currentUserError: currentUserError,
|
|
253
256
|
elementId: this.id,
|
|
254
257
|
detailsSidebarProps: detailsSidebarProps,
|
|
255
258
|
file: file,
|
|
@@ -285,5 +288,5 @@ _defineProperty(Sidebar, "defaultProps", {
|
|
|
285
288
|
});
|
|
286
289
|
|
|
287
290
|
export { Sidebar as SidebarComponent };
|
|
288
|
-
export default flow([withFeatureConsumer, withRouter])(Sidebar);
|
|
291
|
+
export default flow([withCurrentUser, withFeatureConsumer, withRouter])(Sidebar);
|
|
289
292
|
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -17,6 +17,7 @@ import LocalStore from '../../utils/LocalStore';
|
|
|
17
17
|
import SidebarNav from './SidebarNav';
|
|
18
18
|
import SidebarPanels from './SidebarPanels';
|
|
19
19
|
import SidebarUtils from './SidebarUtils';
|
|
20
|
+
import { withCurrentUser } from '../common/current-user';
|
|
20
21
|
import { withFeatureConsumer } from '../common/feature-checking';
|
|
21
22
|
import type { FeatureConfig } from '../common/feature-checking';
|
|
22
23
|
import type { ActivitySidebarProps } from './ActivitySidebar';
|
|
@@ -26,12 +27,14 @@ import type { VersionsSidebarProps } from './versions';
|
|
|
26
27
|
import type { AdditionalSidebarTab } from './flowTypes';
|
|
27
28
|
import type { MetadataEditor } from '../../common/types/metadata';
|
|
28
29
|
import type { BoxItem, User } from '../../common/types/core';
|
|
30
|
+
import type { Errors } from '../common/flowTypes';
|
|
29
31
|
|
|
30
32
|
type Props = {
|
|
31
33
|
activitySidebarProps: ActivitySidebarProps,
|
|
32
34
|
additionalTabs?: Array<AdditionalSidebarTab>,
|
|
33
35
|
className: string,
|
|
34
36
|
currentUser?: User,
|
|
37
|
+
currentUserError?: Errors,
|
|
35
38
|
detailsSidebarProps: DetailsSidebarProps,
|
|
36
39
|
features: FeatureConfig,
|
|
37
40
|
file: BoxItem,
|
|
@@ -210,6 +213,7 @@ class Sidebar extends React.Component<Props, State> {
|
|
|
210
213
|
additionalTabs,
|
|
211
214
|
className,
|
|
212
215
|
currentUser,
|
|
216
|
+
currentUserError,
|
|
213
217
|
detailsSidebarProps,
|
|
214
218
|
file,
|
|
215
219
|
fileId,
|
|
@@ -260,6 +264,7 @@ class Sidebar extends React.Component<Props, State> {
|
|
|
260
264
|
<SidebarPanels
|
|
261
265
|
activitySidebarProps={activitySidebarProps}
|
|
262
266
|
currentUser={currentUser}
|
|
267
|
+
currentUserError={currentUserError}
|
|
263
268
|
elementId={this.id}
|
|
264
269
|
detailsSidebarProps={detailsSidebarProps}
|
|
265
270
|
file={file}
|
|
@@ -288,4 +293,4 @@ class Sidebar extends React.Component<Props, State> {
|
|
|
288
293
|
}
|
|
289
294
|
|
|
290
295
|
export { Sidebar as SidebarComponent };
|
|
291
|
-
export default flow([withFeatureConsumer, withRouter])(Sidebar);
|
|
296
|
+
export default flow([withCurrentUser, withFeatureConsumer, withRouter])(Sidebar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/content-sidebar/Sidebar.js"],"names":["React","classNames","flow","getProp","noop","uniqueid","withRouter","LoadingIndicator","LocalStore","SidebarNav","SidebarPanels","SidebarUtils","withFeatureConsumer","SIDEBAR_FORCE_KEY","SIDEBAR_FORCE_VALUE_CLOSED","SIDEBAR_FORCE_VALUE_OPEN","Sidebar","props","createRef","pathname","basePath","substring","split","event","file","history","currentVersion","file_version","fileVersionSlug","id","urlPrefix","getUrlPrefix","location","preventDefault","push","state","isDirty","getLocationState","setForcedByLocation","prevProps","fileId","prevFileId","prevLocation","replace","silent","setState","key","locationState","isOpen","undefined","store","setItem","getItem","isForced","shouldRefreshCache","sidebarPanels","current","refresh","isLocationOpen","activitySidebarProps","additionalTabs","className","currentUser","detailsSidebarProps","getPreview","getViewer","hasAdditionalTabs","hasNav","hasVersions","isDefaultOpen","isLoading","metadataEditors","metadataSidebarProps","onAnnotationSelect","onVersionChange","versionsSidebarProps","isForcedSet","isForcedOpen","hasActivity","canHaveActivitySidebar","hasDetails","canHaveDetailsSidebar","hasMetadata","shouldRenderMetadataSidebar","hasSkills","shouldRenderSkillsSidebar","onVersionHistoryClick","handleVersionHistoryClick","styleClassName","Component","annotatorState","getAnnotationsMatchPath","getAnnotationsPath","SidebarComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Content Sidebar Component\n * @author Box\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport uniqueid from 'lodash/uniqueId';\nimport { withRouter } from 'react-router-dom';\nimport type { Location, RouterHistory } from 'react-router-dom';\nimport LoadingIndicator from '../../components/loading-indicator/LoadingIndicator';\nimport LocalStore from '../../utils/LocalStore';\nimport SidebarNav from './SidebarNav';\nimport SidebarPanels from './SidebarPanels';\nimport SidebarUtils from './SidebarUtils';\nimport { withFeatureConsumer } from '../common/feature-checking';\nimport type { FeatureConfig } from '../common/feature-checking';\nimport type { ActivitySidebarProps } from './ActivitySidebar';\nimport type { DetailsSidebarProps } from './DetailsSidebar';\nimport type { MetadataSidebarProps } from './MetadataSidebar';\nimport type { VersionsSidebarProps } from './versions';\nimport type { AdditionalSidebarTab } from './flowTypes';\nimport type { MetadataEditor } from '../../common/types/metadata';\nimport type { BoxItem, User } from '../../common/types/core';\n\ntype Props = {\n activitySidebarProps: ActivitySidebarProps,\n additionalTabs?: Array<AdditionalSidebarTab>,\n className: string,\n currentUser?: User,\n detailsSidebarProps: DetailsSidebarProps,\n features: FeatureConfig,\n file: BoxItem,\n fileId: string,\n getPreview: Function,\n getViewer: Function,\n hasActivityFeed: boolean,\n hasAdditionalTabs: boolean,\n hasMetadata: boolean,\n hasNav: boolean,\n hasSkills: boolean,\n hasVersions: boolean,\n history: RouterHistory,\n isDefaultOpen?: boolean,\n isLoading?: boolean,\n location: Location,\n metadataEditors?: Array<MetadataEditor>,\n metadataSidebarProps: MetadataSidebarProps,\n onAnnotationSelect?: Function,\n onVersionChange?: Function,\n onVersionHistoryClick?: Function,\n versionsSidebarProps: VersionsSidebarProps,\n};\n\ntype State = {\n isDirty: boolean,\n};\n\nexport const SIDEBAR_FORCE_KEY: 'bcs.force' = 'bcs.force';\nexport const SIDEBAR_FORCE_VALUE_CLOSED: 'closed' = 'closed';\nexport const SIDEBAR_FORCE_VALUE_OPEN: 'open' = 'open';\n\nclass Sidebar extends React.Component<Props, State> {\n static defaultProps = {\n annotatorState: {},\n isDefaultOpen: true,\n isLoading: false,\n getAnnotationsMatchPath: noop,\n getAnnotationsPath: noop,\n };\n\n id: string = uniqueid('bcs_');\n\n props: Props;\n\n sidebarPanels: { current: null | SidebarPanels } = React.createRef();\n\n state: State;\n\n store: LocalStore = new LocalStore();\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isDirty: this.getLocationState('open') || false,\n };\n\n this.setForcedByLocation();\n }\n\n componentDidUpdate(prevProps: Props): void {\n const { fileId, history, location }: Props = this.props;\n const { fileId: prevFileId, location: prevLocation }: Props = prevProps;\n const { isDirty }: State = this.state;\n\n // User navigated to a different file without ever navigating the sidebar\n if (!isDirty && fileId !== prevFileId && location.pathname !== '/') {\n history.replace({ pathname: '/', state: { silent: true } });\n }\n\n // User navigated or toggled the sidebar intentionally, internally or externally\n if (location !== prevLocation && !this.getLocationState('silent')) {\n this.setForcedByLocation();\n this.setState({ isDirty: true });\n }\n }\n\n getUrlPrefix = (pathname: string) => {\n const basePath = pathname.substring(1).split('/')[0];\n return basePath;\n };\n\n /**\n * Handle version history click\n *\n * @param {SyntheticEvent} event - The event\n * @return {void}\n */\n handleVersionHistoryClick = (event: SyntheticEvent<>): void => {\n const { file, history } = this.props;\n const { file_version: currentVersion } = file;\n const fileVersionSlug = currentVersion ? `/${currentVersion.id}` : '';\n\n const urlPrefix = this.getUrlPrefix(history.location.pathname);\n\n if (event.preventDefault) {\n event.preventDefault();\n }\n\n history.push(`/${urlPrefix}/versions${fileVersionSlug}`);\n };\n\n /**\n * Getter for location state properties.\n *\n * NOTE: Each location on the history stack has its own optional state object that is wholly separate from\n * this component's internal state. Values on the location state object can persist even between refreshes\n * when using certain history contexts, such as BrowserHistory.\n *\n * @param key - Optionally get a specific key value from state\n * @returns {any} - The location state or state key value\n */\n getLocationState(key?: string): any {\n const { location } = this.props;\n const { state: locationState = {} } = location;\n return getProp(locationState, key);\n }\n\n /**\n * Getter/setter for sidebar forced state\n *\n * @param isOpen - Optionally set the sidebar to open/closed\n * @returns {string|null} - The sidebar open/closed state\n */\n isForced(isOpen?: boolean): ?(typeof SIDEBAR_FORCE_VALUE_CLOSED | typeof SIDEBAR_FORCE_VALUE_OPEN) {\n if (isOpen !== undefined) {\n this.store.setItem(SIDEBAR_FORCE_KEY, isOpen ? SIDEBAR_FORCE_VALUE_OPEN : SIDEBAR_FORCE_VALUE_CLOSED);\n }\n\n return this.store.getItem(SIDEBAR_FORCE_KEY);\n }\n\n /**\n * Getter for whether the sidebar has been forced open\n * @returns {boolean} - True if the sidebar has been forced open\n */\n isForcedOpen(): boolean {\n return this.isForced() === SIDEBAR_FORCE_VALUE_OPEN;\n }\n\n /**\n * Getter for whether the sidebar has been forced open/closed previously\n * @returns {boolean} - True if the sidebar has been forced open/closed previously\n */\n isForcedSet(): boolean {\n return this.isForced() !== null;\n }\n\n /**\n * Refreshes the sidebar panel\n * @returns {void}\n */\n refresh(shouldRefreshCache: boolean = true): void {\n const { current: sidebarPanels } = this.sidebarPanels;\n\n if (sidebarPanels) {\n sidebarPanels.refresh(shouldRefreshCache);\n }\n }\n\n /**\n * Helper to set the local store open state based on the location open state, if defined\n */\n setForcedByLocation(): void {\n const isLocationOpen: ?boolean = this.getLocationState('open');\n\n if (isLocationOpen !== undefined && isLocationOpen !== null) {\n this.isForced(isLocationOpen);\n }\n }\n\n render() {\n const {\n activitySidebarProps,\n additionalTabs,\n className,\n currentUser,\n detailsSidebarProps,\n file,\n fileId,\n getPreview,\n getViewer,\n hasAdditionalTabs,\n hasNav,\n hasVersions,\n isDefaultOpen,\n isLoading,\n metadataEditors,\n metadataSidebarProps,\n onAnnotationSelect,\n onVersionChange,\n versionsSidebarProps,\n }: Props = this.props;\n const isOpen = this.isForcedSet() ? this.isForcedOpen() : !!isDefaultOpen;\n const hasActivity = SidebarUtils.canHaveActivitySidebar(this.props);\n const hasDetails = SidebarUtils.canHaveDetailsSidebar(this.props);\n const hasMetadata = SidebarUtils.shouldRenderMetadataSidebar(this.props, metadataEditors);\n const hasSkills = SidebarUtils.shouldRenderSkillsSidebar(this.props, file);\n const onVersionHistoryClick = hasVersions ? this.handleVersionHistoryClick : this.props.onVersionHistoryClick;\n const styleClassName = classNames('be bcs', className, {\n 'bcs-is-open': isOpen,\n });\n\n return (\n <aside id={this.id} className={styleClassName} data-testid=\"preview-sidebar\">\n {isLoading ? (\n <div className=\"bcs-loading\">\n <LoadingIndicator />\n </div>\n ) : (\n <>\n {hasNav && (\n <SidebarNav\n additionalTabs={additionalTabs}\n elementId={this.id}\n fileId={fileId}\n hasActivity={hasActivity}\n hasAdditionalTabs={hasAdditionalTabs}\n hasDetails={hasDetails}\n hasMetadata={hasMetadata}\n hasSkills={hasSkills}\n isOpen={isOpen}\n />\n )}\n <SidebarPanels\n activitySidebarProps={activitySidebarProps}\n currentUser={currentUser}\n elementId={this.id}\n detailsSidebarProps={detailsSidebarProps}\n file={file}\n fileId={fileId}\n getPreview={getPreview}\n getViewer={getViewer}\n hasActivity={hasActivity}\n hasDetails={hasDetails}\n hasMetadata={hasMetadata}\n hasSkills={hasSkills}\n hasVersions={hasVersions}\n isOpen={isOpen}\n key={file.id}\n metadataSidebarProps={metadataSidebarProps}\n onAnnotationSelect={onAnnotationSelect}\n onVersionChange={onVersionChange}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.sidebarPanels}\n versionsSidebarProps={versionsSidebarProps}\n />\n </>\n )}\n </aside>\n );\n }\n}\n\nexport { Sidebar as SidebarComponent };\nexport default flow([withFeatureConsumer, withRouter])(Sidebar);\n"],"file":"Sidebar.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/content-sidebar/Sidebar.js"],"names":["React","classNames","flow","getProp","noop","uniqueid","withRouter","LoadingIndicator","LocalStore","SidebarNav","SidebarPanels","SidebarUtils","withCurrentUser","withFeatureConsumer","SIDEBAR_FORCE_KEY","SIDEBAR_FORCE_VALUE_CLOSED","SIDEBAR_FORCE_VALUE_OPEN","Sidebar","props","createRef","pathname","basePath","substring","split","event","file","history","currentVersion","file_version","fileVersionSlug","id","urlPrefix","getUrlPrefix","location","preventDefault","push","state","isDirty","getLocationState","setForcedByLocation","prevProps","fileId","prevFileId","prevLocation","replace","silent","setState","key","locationState","isOpen","undefined","store","setItem","getItem","isForced","shouldRefreshCache","sidebarPanels","current","refresh","isLocationOpen","activitySidebarProps","additionalTabs","className","currentUser","currentUserError","detailsSidebarProps","getPreview","getViewer","hasAdditionalTabs","hasNav","hasVersions","isDefaultOpen","isLoading","metadataEditors","metadataSidebarProps","onAnnotationSelect","onVersionChange","versionsSidebarProps","isForcedSet","isForcedOpen","hasActivity","canHaveActivitySidebar","hasDetails","canHaveDetailsSidebar","hasMetadata","shouldRenderMetadataSidebar","hasSkills","shouldRenderSkillsSidebar","onVersionHistoryClick","handleVersionHistoryClick","styleClassName","Component","annotatorState","getAnnotationsMatchPath","getAnnotationsPath","SidebarComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Content Sidebar Component\n * @author Box\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport flow from 'lodash/flow';\nimport getProp from 'lodash/get';\nimport noop from 'lodash/noop';\nimport uniqueid from 'lodash/uniqueId';\nimport { withRouter } from 'react-router-dom';\nimport type { Location, RouterHistory } from 'react-router-dom';\nimport LoadingIndicator from '../../components/loading-indicator/LoadingIndicator';\nimport LocalStore from '../../utils/LocalStore';\nimport SidebarNav from './SidebarNav';\nimport SidebarPanels from './SidebarPanels';\nimport SidebarUtils from './SidebarUtils';\nimport { withCurrentUser } from '../common/current-user';\nimport { withFeatureConsumer } from '../common/feature-checking';\nimport type { FeatureConfig } from '../common/feature-checking';\nimport type { ActivitySidebarProps } from './ActivitySidebar';\nimport type { DetailsSidebarProps } from './DetailsSidebar';\nimport type { MetadataSidebarProps } from './MetadataSidebar';\nimport type { VersionsSidebarProps } from './versions';\nimport type { AdditionalSidebarTab } from './flowTypes';\nimport type { MetadataEditor } from '../../common/types/metadata';\nimport type { BoxItem, User } from '../../common/types/core';\nimport type { Errors } from '../common/flowTypes';\n\ntype Props = {\n activitySidebarProps: ActivitySidebarProps,\n additionalTabs?: Array<AdditionalSidebarTab>,\n className: string,\n currentUser?: User,\n currentUserError?: Errors,\n detailsSidebarProps: DetailsSidebarProps,\n features: FeatureConfig,\n file: BoxItem,\n fileId: string,\n getPreview: Function,\n getViewer: Function,\n hasActivityFeed: boolean,\n hasAdditionalTabs: boolean,\n hasMetadata: boolean,\n hasNav: boolean,\n hasSkills: boolean,\n hasVersions: boolean,\n history: RouterHistory,\n isDefaultOpen?: boolean,\n isLoading?: boolean,\n location: Location,\n metadataEditors?: Array<MetadataEditor>,\n metadataSidebarProps: MetadataSidebarProps,\n onAnnotationSelect?: Function,\n onVersionChange?: Function,\n onVersionHistoryClick?: Function,\n versionsSidebarProps: VersionsSidebarProps,\n};\n\ntype State = {\n isDirty: boolean,\n};\n\nexport const SIDEBAR_FORCE_KEY: 'bcs.force' = 'bcs.force';\nexport const SIDEBAR_FORCE_VALUE_CLOSED: 'closed' = 'closed';\nexport const SIDEBAR_FORCE_VALUE_OPEN: 'open' = 'open';\n\nclass Sidebar extends React.Component<Props, State> {\n static defaultProps = {\n annotatorState: {},\n isDefaultOpen: true,\n isLoading: false,\n getAnnotationsMatchPath: noop,\n getAnnotationsPath: noop,\n };\n\n id: string = uniqueid('bcs_');\n\n props: Props;\n\n sidebarPanels: { current: null | SidebarPanels } = React.createRef();\n\n state: State;\n\n store: LocalStore = new LocalStore();\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isDirty: this.getLocationState('open') || false,\n };\n\n this.setForcedByLocation();\n }\n\n componentDidUpdate(prevProps: Props): void {\n const { fileId, history, location }: Props = this.props;\n const { fileId: prevFileId, location: prevLocation }: Props = prevProps;\n const { isDirty }: State = this.state;\n\n // User navigated to a different file without ever navigating the sidebar\n if (!isDirty && fileId !== prevFileId && location.pathname !== '/') {\n history.replace({ pathname: '/', state: { silent: true } });\n }\n\n // User navigated or toggled the sidebar intentionally, internally or externally\n if (location !== prevLocation && !this.getLocationState('silent')) {\n this.setForcedByLocation();\n this.setState({ isDirty: true });\n }\n }\n\n getUrlPrefix = (pathname: string) => {\n const basePath = pathname.substring(1).split('/')[0];\n return basePath;\n };\n\n /**\n * Handle version history click\n *\n * @param {SyntheticEvent} event - The event\n * @return {void}\n */\n handleVersionHistoryClick = (event: SyntheticEvent<>): void => {\n const { file, history } = this.props;\n const { file_version: currentVersion } = file;\n const fileVersionSlug = currentVersion ? `/${currentVersion.id}` : '';\n\n const urlPrefix = this.getUrlPrefix(history.location.pathname);\n\n if (event.preventDefault) {\n event.preventDefault();\n }\n\n history.push(`/${urlPrefix}/versions${fileVersionSlug}`);\n };\n\n /**\n * Getter for location state properties.\n *\n * NOTE: Each location on the history stack has its own optional state object that is wholly separate from\n * this component's internal state. Values on the location state object can persist even between refreshes\n * when using certain history contexts, such as BrowserHistory.\n *\n * @param key - Optionally get a specific key value from state\n * @returns {any} - The location state or state key value\n */\n getLocationState(key?: string): any {\n const { location } = this.props;\n const { state: locationState = {} } = location;\n return getProp(locationState, key);\n }\n\n /**\n * Getter/setter for sidebar forced state\n *\n * @param isOpen - Optionally set the sidebar to open/closed\n * @returns {string|null} - The sidebar open/closed state\n */\n isForced(isOpen?: boolean): ?(typeof SIDEBAR_FORCE_VALUE_CLOSED | typeof SIDEBAR_FORCE_VALUE_OPEN) {\n if (isOpen !== undefined) {\n this.store.setItem(SIDEBAR_FORCE_KEY, isOpen ? SIDEBAR_FORCE_VALUE_OPEN : SIDEBAR_FORCE_VALUE_CLOSED);\n }\n\n return this.store.getItem(SIDEBAR_FORCE_KEY);\n }\n\n /**\n * Getter for whether the sidebar has been forced open\n * @returns {boolean} - True if the sidebar has been forced open\n */\n isForcedOpen(): boolean {\n return this.isForced() === SIDEBAR_FORCE_VALUE_OPEN;\n }\n\n /**\n * Getter for whether the sidebar has been forced open/closed previously\n * @returns {boolean} - True if the sidebar has been forced open/closed previously\n */\n isForcedSet(): boolean {\n return this.isForced() !== null;\n }\n\n /**\n * Refreshes the sidebar panel\n * @returns {void}\n */\n refresh(shouldRefreshCache: boolean = true): void {\n const { current: sidebarPanels } = this.sidebarPanels;\n\n if (sidebarPanels) {\n sidebarPanels.refresh(shouldRefreshCache);\n }\n }\n\n /**\n * Helper to set the local store open state based on the location open state, if defined\n */\n setForcedByLocation(): void {\n const isLocationOpen: ?boolean = this.getLocationState('open');\n\n if (isLocationOpen !== undefined && isLocationOpen !== null) {\n this.isForced(isLocationOpen);\n }\n }\n\n render() {\n const {\n activitySidebarProps,\n additionalTabs,\n className,\n currentUser,\n currentUserError,\n detailsSidebarProps,\n file,\n fileId,\n getPreview,\n getViewer,\n hasAdditionalTabs,\n hasNav,\n hasVersions,\n isDefaultOpen,\n isLoading,\n metadataEditors,\n metadataSidebarProps,\n onAnnotationSelect,\n onVersionChange,\n versionsSidebarProps,\n }: Props = this.props;\n const isOpen = this.isForcedSet() ? this.isForcedOpen() : !!isDefaultOpen;\n const hasActivity = SidebarUtils.canHaveActivitySidebar(this.props);\n const hasDetails = SidebarUtils.canHaveDetailsSidebar(this.props);\n const hasMetadata = SidebarUtils.shouldRenderMetadataSidebar(this.props, metadataEditors);\n const hasSkills = SidebarUtils.shouldRenderSkillsSidebar(this.props, file);\n const onVersionHistoryClick = hasVersions ? this.handleVersionHistoryClick : this.props.onVersionHistoryClick;\n const styleClassName = classNames('be bcs', className, {\n 'bcs-is-open': isOpen,\n });\n\n return (\n <aside id={this.id} className={styleClassName} data-testid=\"preview-sidebar\">\n {isLoading ? (\n <div className=\"bcs-loading\">\n <LoadingIndicator />\n </div>\n ) : (\n <>\n {hasNav && (\n <SidebarNav\n additionalTabs={additionalTabs}\n elementId={this.id}\n fileId={fileId}\n hasActivity={hasActivity}\n hasAdditionalTabs={hasAdditionalTabs}\n hasDetails={hasDetails}\n hasMetadata={hasMetadata}\n hasSkills={hasSkills}\n isOpen={isOpen}\n />\n )}\n <SidebarPanels\n activitySidebarProps={activitySidebarProps}\n currentUser={currentUser}\n currentUserError={currentUserError}\n elementId={this.id}\n detailsSidebarProps={detailsSidebarProps}\n file={file}\n fileId={fileId}\n getPreview={getPreview}\n getViewer={getViewer}\n hasActivity={hasActivity}\n hasDetails={hasDetails}\n hasMetadata={hasMetadata}\n hasSkills={hasSkills}\n hasVersions={hasVersions}\n isOpen={isOpen}\n key={file.id}\n metadataSidebarProps={metadataSidebarProps}\n onAnnotationSelect={onAnnotationSelect}\n onVersionChange={onVersionChange}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.sidebarPanels}\n versionsSidebarProps={versionsSidebarProps}\n />\n </>\n )}\n </aside>\n );\n }\n}\n\nexport { Sidebar as SidebarComponent };\nexport default flow([withCurrentUser, withFeatureConsumer, withRouter])(Sidebar);\n"],"file":"Sidebar.js"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import noop from 'lodash/noop';
|
|
3
|
+
import { FormattedMessage } from 'react-intl';
|
|
4
|
+
import ContentInsightsSummary from '../../features/content-insights/ContentInsightsSummary';
|
|
5
|
+
// @ts-ignore Module is written in Flow
|
|
6
|
+
import messages from '../common/messages'; // @ts-ignore Module is written in Flow
|
|
7
|
+
|
|
8
|
+
import SidebarSection from './SidebarSection'; // @ts-ignore Module is written in Flow
|
|
9
|
+
// eslint-disable-next-line import/no-named-as-default, import/no-named-as-default-member
|
|
10
|
+
|
|
11
|
+
import withErrorHandling from './withErrorHandling'; // Above eslint rules disabled because typescript chokes on flow type import in withErrorHandling
|
|
12
|
+
|
|
13
|
+
import './SidebarContentInsights.scss';
|
|
14
|
+
var defaultContentInsights = {
|
|
15
|
+
graphData: [],
|
|
16
|
+
isLoading: true,
|
|
17
|
+
previousPeriodCount: 0,
|
|
18
|
+
totalCount: 0
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var SidebarContentInsights = function SidebarContentInsights(_ref) {
|
|
22
|
+
var _ref$contentInsights = _ref.contentInsights,
|
|
23
|
+
contentInsights = _ref$contentInsights === void 0 ? defaultContentInsights : _ref$contentInsights,
|
|
24
|
+
_ref$onContentInsight = _ref.onContentInsightsClick,
|
|
25
|
+
onContentInsightsClick = _ref$onContentInsight === void 0 ? noop : _ref$onContentInsight;
|
|
26
|
+
var error = contentInsights.error,
|
|
27
|
+
graphData = contentInsights.graphData,
|
|
28
|
+
isLoading = contentInsights.isLoading,
|
|
29
|
+
previousPeriodCount = contentInsights.previousPeriodCount,
|
|
30
|
+
totalCount = contentInsights.totalCount;
|
|
31
|
+
return React.createElement(SidebarSection, {
|
|
32
|
+
className: "bcs-SidebarContentInsights",
|
|
33
|
+
title: React.createElement(FormattedMessage, messages.sidebarContentInsights)
|
|
34
|
+
}, React.createElement(ContentInsightsSummary, {
|
|
35
|
+
error: error,
|
|
36
|
+
graphData: graphData,
|
|
37
|
+
isLoading: isLoading,
|
|
38
|
+
onClick: onContentInsightsClick,
|
|
39
|
+
previousPeriodCount: previousPeriodCount,
|
|
40
|
+
totalCount: totalCount
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default withErrorHandling(SidebarContentInsights);
|
|
45
|
+
//# sourceMappingURL=SidebarContentInsights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/content-sidebar/SidebarContentInsights.tsx"],"names":["React","noop","FormattedMessage","ContentInsightsSummary","messages","SidebarSection","withErrorHandling","defaultContentInsights","graphData","isLoading","previousPeriodCount","totalCount","SidebarContentInsights","contentInsights","onContentInsightsClick","error","sidebarContentInsights"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,SAASC,gBAAT,QAAiC,YAAjC;AAEA,OAAOC,sBAAP,MAAmC,wDAAnC;AAEA;AACA,OAAOC,QAAP,MAAqB,oBAArB,C,CACA;;AACA,OAAOC,cAAP,MAA2B,kBAA3B,C,CACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,qBAA9B,C,CAAqD;;AAErD,OAAO,+BAAP;AAeA,IAAMC,sBAAsB,GAAG;AAC3BC,EAAAA,SAAS,EAAE,EADgB;AAE3BC,EAAAA,SAAS,EAAE,IAFgB;AAG3BC,EAAAA,mBAAmB,EAAE,CAHM;AAI3BC,EAAAA,UAAU,EAAE;AAJe,CAA/B;;AAOA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAAwF;AAAA,kCAArFC,eAAqF;AAAA,MAArFA,eAAqF,qCAAnEN,sBAAmE;AAAA,mCAA3CO,sBAA2C;AAAA,MAA3CA,sBAA2C,sCAAlBb,IAAkB;AAAA,MAC3Gc,KAD2G,GAC1CF,eAD0C,CAC3GE,KAD2G;AAAA,MACpGP,SADoG,GAC1CK,eAD0C,CACpGL,SADoG;AAAA,MACzFC,SADyF,GAC1CI,eAD0C,CACzFJ,SADyF;AAAA,MAC9EC,mBAD8E,GAC1CG,eAD0C,CAC9EH,mBAD8E;AAAA,MACzDC,UADyD,GAC1CE,eAD0C,CACzDF,UADyD;AAGnH,SACI,oBAAC,cAAD;AACI,IAAA,SAAS,EAAC,4BADd;AAEI,IAAA,KAAK,EAAE,oBAAC,gBAAD,EAAsBP,QAAQ,CAACY,sBAA/B;AAFX,KAII,oBAAC,sBAAD;AACI,IAAA,KAAK,EAAED,KADX;AAEI,IAAA,SAAS,EAAEP,SAFf;AAGI,IAAA,SAAS,EAAEC,SAHf;AAII,IAAA,OAAO,EAAEK,sBAJb;AAKI,IAAA,mBAAmB,EAAEJ,mBALzB;AAMI,IAAA,UAAU,EAAEC;AANhB,IAJJ,CADJ;AAeH,CAlBD;;AAoBA,eAAeL,iBAAiB,CAACM,sBAAD,CAAhC","sourcesContent":["import React from 'react';\nimport noop from 'lodash/noop';\nimport { FormattedMessage } from 'react-intl';\n\nimport ContentInsightsSummary from '../../features/content-insights/ContentInsightsSummary';\nimport { GraphData, ResponseError } from '../../features/content-insights/types';\n// @ts-ignore Module is written in Flow\nimport messages from '../common/messages';\n// @ts-ignore Module is written in Flow\nimport SidebarSection from './SidebarSection';\n// @ts-ignore Module is written in Flow\n// eslint-disable-next-line import/no-named-as-default, import/no-named-as-default-member\nimport withErrorHandling from './withErrorHandling'; // Above eslint rules disabled because typescript chokes on flow type import in withErrorHandling\n\nimport './SidebarContentInsights.scss';\n\nexport interface ContentInsights {\n error?: ResponseError;\n graphData: GraphData;\n isLoading: boolean;\n previousPeriodCount: number;\n totalCount: number;\n}\n\nexport interface Props {\n contentInsights?: ContentInsights;\n onContentInsightsClick?: () => void;\n}\n\nconst defaultContentInsights = {\n graphData: [],\n isLoading: true,\n previousPeriodCount: 0,\n totalCount: 0,\n};\n\nconst SidebarContentInsights = ({ contentInsights = defaultContentInsights, onContentInsightsClick = noop }: Props) => {\n const { error, graphData, isLoading, previousPeriodCount, totalCount } = contentInsights;\n\n return (\n <SidebarSection\n className=\"bcs-SidebarContentInsights\"\n title={<FormattedMessage {...messages.sidebarContentInsights} />}\n >\n <ContentInsightsSummary\n error={error}\n graphData={graphData}\n isLoading={isLoading}\n onClick={onContentInsightsClick}\n previousPeriodCount={previousPeriodCount}\n totalCount={totalCount}\n />\n </SidebarSection>\n );\n};\n\nexport default withErrorHandling(SidebarContentInsights);\n"],"file":"SidebarContentInsights.js"}
|
|
@@ -130,6 +130,7 @@ function (_React$Component) {
|
|
|
130
130
|
var _this$props = this.props,
|
|
131
131
|
activitySidebarProps = _this$props.activitySidebarProps,
|
|
132
132
|
currentUser = _this$props.currentUser,
|
|
133
|
+
currentUserError = _this$props.currentUserError,
|
|
133
134
|
detailsSidebarProps = _this$props.detailsSidebarProps,
|
|
134
135
|
elementId = _this$props.elementId,
|
|
135
136
|
file = _this$props.file,
|
|
@@ -177,6 +178,7 @@ function (_React$Component) {
|
|
|
177
178
|
return React.createElement(LoadableActivitySidebar, _extends({
|
|
178
179
|
elementId: elementId,
|
|
179
180
|
currentUser: currentUser,
|
|
181
|
+
currentUserError: currentUserError,
|
|
180
182
|
file: file,
|
|
181
183
|
hasSidebarInitialized: isInitialized,
|
|
182
184
|
onAnnotationSelect: onAnnotationSelect,
|
|
@@ -29,10 +29,12 @@ import type { ActivitySidebarProps } from './ActivitySidebar';
|
|
|
29
29
|
import type { MetadataSidebarProps } from './MetadataSidebar';
|
|
30
30
|
import type { VersionsSidebarProps } from './versions';
|
|
31
31
|
import type { User, BoxItem } from '../../common/types/core';
|
|
32
|
+
import type { Errors } from '../common/flowTypes';
|
|
32
33
|
|
|
33
34
|
type Props = {
|
|
34
35
|
activitySidebarProps: ActivitySidebarProps,
|
|
35
36
|
currentUser?: User,
|
|
37
|
+
currentUserError?: Errors,
|
|
36
38
|
detailsSidebarProps: DetailsSidebarProps,
|
|
37
39
|
elementId: string,
|
|
38
40
|
file: BoxItem,
|
|
@@ -131,6 +133,7 @@ class SidebarPanels extends React.Component<Props, State> {
|
|
|
131
133
|
const {
|
|
132
134
|
activitySidebarProps,
|
|
133
135
|
currentUser,
|
|
136
|
+
currentUserError,
|
|
134
137
|
detailsSidebarProps,
|
|
135
138
|
elementId,
|
|
136
139
|
file,
|
|
@@ -194,6 +197,7 @@ class SidebarPanels extends React.Component<Props, State> {
|
|
|
194
197
|
<LoadableActivitySidebar
|
|
195
198
|
elementId={elementId}
|
|
196
199
|
currentUser={currentUser}
|
|
200
|
+
currentUserError={currentUserError}
|
|
197
201
|
file={file}
|
|
198
202
|
hasSidebarInitialized={isInitialized}
|
|
199
203
|
onAnnotationSelect={onAnnotationSelect}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/content-sidebar/SidebarPanels.js"],"names":["React","flow","Redirect","Route","Switch","SidebarUtils","withSidebarAnnotations","withAnnotatorContext","withAPIContext","withRouterAndRef","ORIGIN_ACTIVITY_SIDEBAR","ORIGIN_DETAILS_SIDEBAR","ORIGIN_METADATA_SIDEBAR","ORIGIN_SKILLS_SIDEBAR","ORIGIN_VERSIONS_SIDEBAR","SIDEBAR_VIEW_ACTIVITY","SIDEBAR_VIEW_DETAILS","SIDEBAR_VIEW_METADATA","SIDEBAR_VIEW_SKILLS","SIDEBAR_VIEW_VERSIONS","BASE_EVENT_NAME","MARK_NAME_JS_LOADING_DETAILS","MARK_NAME_JS_LOADING_ACTIVITY","MARK_NAME_JS_LOADING_SKILLS","MARK_NAME_JS_LOADING_METADATA","MARK_NAME_JS_LOADING_VERSIONS","URL_TO_FEED_ITEM_TYPE","annotations","comments","tasks","LoadableDetailsSidebar","getAsyncSidebarContent","LoadableActivitySidebar","LoadableSkillsSidebar","LoadableMetadataSidebar","LoadableVersionsSidebar","SidebarPanels","createRef","isInitialized","setState","shouldRefreshCache","activitySidebar","current","detailsSidebar","metadataSidebar","versionsSidebar","refresh","props","activitySidebarProps","currentUser","detailsSidebarProps","elementId","file","fileId","getPreview","getViewer","hasActivity","hasDetails","hasMetadata","hasSkills","hasVersions","isOpen","metadataSidebarProps","onAnnotationSelect","onVersionChange","onVersionHistoryClick","versionsSidebarProps","state","id","match","matchEntryType","params","activeFeedEntryType","undefined","activeFeedEntryId","sidebar","versionId","redirect","pathname","silent","Component","SidebarPanelsComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Content Sidebar Panels component\n * @author Box\n */\n\nimport * as React from 'react';\nimport flow from 'lodash/flow';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport SidebarUtils from './SidebarUtils';\nimport withSidebarAnnotations from './withSidebarAnnotations';\nimport { withAnnotatorContext } from '../common/annotator-context';\nimport { withAPIContext } from '../common/api-context';\nimport { withRouterAndRef } from '../common/routing';\nimport {\n ORIGIN_ACTIVITY_SIDEBAR,\n ORIGIN_DETAILS_SIDEBAR,\n ORIGIN_METADATA_SIDEBAR,\n ORIGIN_SKILLS_SIDEBAR,\n ORIGIN_VERSIONS_SIDEBAR,\n SIDEBAR_VIEW_ACTIVITY,\n SIDEBAR_VIEW_DETAILS,\n SIDEBAR_VIEW_METADATA,\n SIDEBAR_VIEW_SKILLS,\n SIDEBAR_VIEW_VERSIONS,\n} from '../../constants';\nimport type { DetailsSidebarProps } from './DetailsSidebar';\nimport type { ActivitySidebarProps } from './ActivitySidebar';\nimport type { MetadataSidebarProps } from './MetadataSidebar';\nimport type { VersionsSidebarProps } from './versions';\nimport type { User, BoxItem } from '../../common/types/core';\n\ntype Props = {\n activitySidebarProps: ActivitySidebarProps,\n currentUser?: User,\n detailsSidebarProps: DetailsSidebarProps,\n elementId: string,\n file: BoxItem,\n fileId: string,\n getPreview: Function,\n getViewer: Function,\n hasActivity: boolean,\n hasDetails: boolean,\n hasMetadata: boolean,\n hasSkills: boolean,\n hasVersions: boolean,\n isOpen: boolean,\n metadataSidebarProps: MetadataSidebarProps,\n onAnnotationSelect?: Function,\n onVersionChange?: Function,\n onVersionHistoryClick?: Function,\n versionsSidebarProps: VersionsSidebarProps,\n};\n\ntype State = {\n isInitialized: boolean,\n};\n\ntype ElementRefType = {\n current: null | Object,\n};\n\n// TODO: place into code splitting logic\nconst BASE_EVENT_NAME = '_JS_LOADING';\nconst MARK_NAME_JS_LOADING_DETAILS = `${ORIGIN_DETAILS_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_ACTIVITY = `${ORIGIN_ACTIVITY_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_SKILLS = `${ORIGIN_SKILLS_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_METADATA = `${ORIGIN_METADATA_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_VERSIONS = `${ORIGIN_VERSIONS_SIDEBAR}${BASE_EVENT_NAME}`;\n\nconst URL_TO_FEED_ITEM_TYPE = { annotations: 'annotation', comments: 'comment', tasks: 'task' };\n\nconst LoadableDetailsSidebar = SidebarUtils.getAsyncSidebarContent(SIDEBAR_VIEW_DETAILS, MARK_NAME_JS_LOADING_DETAILS);\nconst LoadableActivitySidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_ACTIVITY,\n MARK_NAME_JS_LOADING_ACTIVITY,\n);\nconst LoadableSkillsSidebar = SidebarUtils.getAsyncSidebarContent(SIDEBAR_VIEW_SKILLS, MARK_NAME_JS_LOADING_SKILLS);\nconst LoadableMetadataSidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_METADATA,\n MARK_NAME_JS_LOADING_METADATA,\n);\nconst LoadableVersionsSidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_VERSIONS,\n MARK_NAME_JS_LOADING_VERSIONS,\n);\n\nclass SidebarPanels extends React.Component<Props, State> {\n activitySidebar: ElementRefType = React.createRef();\n\n detailsSidebar: ElementRefType = React.createRef();\n\n metadataSidebar: ElementRefType = React.createRef();\n\n state: State = { isInitialized: false };\n\n versionsSidebar: ElementRefType = React.createRef();\n\n componentDidMount() {\n this.setState({ isInitialized: true });\n }\n\n /**\n * Refreshes the contents of the active sidebar\n * @returns {void}\n */\n refresh(shouldRefreshCache: boolean = true): void {\n const { current: activitySidebar } = this.activitySidebar;\n const { current: detailsSidebar } = this.detailsSidebar;\n const { current: metadataSidebar } = this.metadataSidebar;\n const { current: versionsSidebar } = this.versionsSidebar;\n\n if (activitySidebar) {\n activitySidebar.refresh(shouldRefreshCache);\n }\n\n if (detailsSidebar) {\n detailsSidebar.refresh();\n }\n\n if (metadataSidebar) {\n metadataSidebar.refresh();\n }\n\n if (versionsSidebar) {\n versionsSidebar.refresh();\n }\n }\n\n render() {\n const {\n activitySidebarProps,\n currentUser,\n detailsSidebarProps,\n elementId,\n file,\n fileId,\n getPreview,\n getViewer,\n hasActivity,\n hasDetails,\n hasMetadata,\n hasSkills,\n hasVersions,\n isOpen,\n metadataSidebarProps,\n onAnnotationSelect,\n onVersionChange,\n onVersionHistoryClick,\n versionsSidebarProps,\n }: Props = this.props;\n\n const { isInitialized } = this.state;\n\n if (!isOpen || (!hasActivity && !hasDetails && !hasMetadata && !hasSkills && !hasVersions)) {\n return null;\n }\n\n return (\n <Switch>\n {hasSkills && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_SKILLS}`}\n render={() => (\n <LoadableSkillsSidebar\n elementId={elementId}\n key={file.id}\n file={file}\n getPreview={getPreview}\n getViewer={getViewer}\n hasSidebarInitialized={isInitialized}\n startMarkName={MARK_NAME_JS_LOADING_SKILLS}\n />\n )}\n />\n )}\n {/* This handles both the default activity sidebar and the activity sidebar with a\n comment or task deeplink. */}\n {hasActivity && (\n <Route\n exact\n path={[\n `/${SIDEBAR_VIEW_ACTIVITY}`,\n `/${SIDEBAR_VIEW_ACTIVITY}/:activeFeedEntryType(annotations)/:fileVersionId/:activeFeedEntryId?`,\n `/${SIDEBAR_VIEW_ACTIVITY}/:activeFeedEntryType(comments|tasks)/:activeFeedEntryId?`,\n ]}\n render={({ match }) => {\n const matchEntryType = match.params.activeFeedEntryType;\n const activeFeedEntryType = matchEntryType\n ? URL_TO_FEED_ITEM_TYPE[matchEntryType]\n : undefined;\n return (\n <LoadableActivitySidebar\n elementId={elementId}\n currentUser={currentUser}\n file={file}\n hasSidebarInitialized={isInitialized}\n onAnnotationSelect={onAnnotationSelect}\n onVersionChange={onVersionChange}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.activitySidebar}\n startMarkName={MARK_NAME_JS_LOADING_ACTIVITY}\n activeFeedEntryId={match.params.activeFeedEntryId}\n activeFeedEntryType={match.params.activeFeedEntryId && activeFeedEntryType}\n {...activitySidebarProps}\n />\n );\n }}\n />\n )}\n {hasDetails && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_DETAILS}`}\n render={() => (\n <LoadableDetailsSidebar\n elementId={elementId}\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n key={fileId}\n hasVersions={hasVersions}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.detailsSidebar}\n startMarkName={MARK_NAME_JS_LOADING_DETAILS}\n {...detailsSidebarProps}\n />\n )}\n />\n )}\n {hasMetadata && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_METADATA}`}\n render={() => (\n <LoadableMetadataSidebar\n elementId={elementId}\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n ref={this.metadataSidebar}\n startMarkName={MARK_NAME_JS_LOADING_METADATA}\n {...metadataSidebarProps}\n />\n )}\n />\n )}\n {hasVersions && (\n <Route\n path=\"/:sidebar(activity|details)/versions/:versionId?\"\n render={({ match }) => (\n <LoadableVersionsSidebar\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n key={fileId}\n onVersionChange={onVersionChange}\n parentName={match.params.sidebar}\n ref={this.versionsSidebar}\n versionId={match.params.versionId}\n {...versionsSidebarProps}\n />\n )}\n />\n )}\n <Route\n render={() => {\n let redirect = '';\n\n if (hasSkills) {\n redirect = SIDEBAR_VIEW_SKILLS;\n } else if (hasActivity) {\n redirect = SIDEBAR_VIEW_ACTIVITY;\n } else if (hasDetails) {\n redirect = SIDEBAR_VIEW_DETAILS;\n } else if (hasMetadata) {\n redirect = SIDEBAR_VIEW_METADATA;\n }\n\n return <Redirect to={{ pathname: `/${redirect}`, state: { silent: true } }} />;\n }}\n />\n </Switch>\n );\n }\n}\n\nexport { SidebarPanels as SidebarPanelsComponent };\nexport default flow([withSidebarAnnotations, withAPIContext, withAnnotatorContext, withRouterAndRef])(SidebarPanels);\n"],"file":"SidebarPanels.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/content-sidebar/SidebarPanels.js"],"names":["React","flow","Redirect","Route","Switch","SidebarUtils","withSidebarAnnotations","withAnnotatorContext","withAPIContext","withRouterAndRef","ORIGIN_ACTIVITY_SIDEBAR","ORIGIN_DETAILS_SIDEBAR","ORIGIN_METADATA_SIDEBAR","ORIGIN_SKILLS_SIDEBAR","ORIGIN_VERSIONS_SIDEBAR","SIDEBAR_VIEW_ACTIVITY","SIDEBAR_VIEW_DETAILS","SIDEBAR_VIEW_METADATA","SIDEBAR_VIEW_SKILLS","SIDEBAR_VIEW_VERSIONS","BASE_EVENT_NAME","MARK_NAME_JS_LOADING_DETAILS","MARK_NAME_JS_LOADING_ACTIVITY","MARK_NAME_JS_LOADING_SKILLS","MARK_NAME_JS_LOADING_METADATA","MARK_NAME_JS_LOADING_VERSIONS","URL_TO_FEED_ITEM_TYPE","annotations","comments","tasks","LoadableDetailsSidebar","getAsyncSidebarContent","LoadableActivitySidebar","LoadableSkillsSidebar","LoadableMetadataSidebar","LoadableVersionsSidebar","SidebarPanels","createRef","isInitialized","setState","shouldRefreshCache","activitySidebar","current","detailsSidebar","metadataSidebar","versionsSidebar","refresh","props","activitySidebarProps","currentUser","currentUserError","detailsSidebarProps","elementId","file","fileId","getPreview","getViewer","hasActivity","hasDetails","hasMetadata","hasSkills","hasVersions","isOpen","metadataSidebarProps","onAnnotationSelect","onVersionChange","onVersionHistoryClick","versionsSidebarProps","state","id","match","matchEntryType","params","activeFeedEntryType","undefined","activeFeedEntryId","sidebar","versionId","redirect","pathname","silent","Component","SidebarPanelsComponent"],"mappings":"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","sourcesContent":["/**\n * @flow\n * @file Content Sidebar Panels component\n * @author Box\n */\n\nimport * as React from 'react';\nimport flow from 'lodash/flow';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport SidebarUtils from './SidebarUtils';\nimport withSidebarAnnotations from './withSidebarAnnotations';\nimport { withAnnotatorContext } from '../common/annotator-context';\nimport { withAPIContext } from '../common/api-context';\nimport { withRouterAndRef } from '../common/routing';\nimport {\n ORIGIN_ACTIVITY_SIDEBAR,\n ORIGIN_DETAILS_SIDEBAR,\n ORIGIN_METADATA_SIDEBAR,\n ORIGIN_SKILLS_SIDEBAR,\n ORIGIN_VERSIONS_SIDEBAR,\n SIDEBAR_VIEW_ACTIVITY,\n SIDEBAR_VIEW_DETAILS,\n SIDEBAR_VIEW_METADATA,\n SIDEBAR_VIEW_SKILLS,\n SIDEBAR_VIEW_VERSIONS,\n} from '../../constants';\nimport type { DetailsSidebarProps } from './DetailsSidebar';\nimport type { ActivitySidebarProps } from './ActivitySidebar';\nimport type { MetadataSidebarProps } from './MetadataSidebar';\nimport type { VersionsSidebarProps } from './versions';\nimport type { User, BoxItem } from '../../common/types/core';\nimport type { Errors } from '../common/flowTypes';\n\ntype Props = {\n activitySidebarProps: ActivitySidebarProps,\n currentUser?: User,\n currentUserError?: Errors,\n detailsSidebarProps: DetailsSidebarProps,\n elementId: string,\n file: BoxItem,\n fileId: string,\n getPreview: Function,\n getViewer: Function,\n hasActivity: boolean,\n hasDetails: boolean,\n hasMetadata: boolean,\n hasSkills: boolean,\n hasVersions: boolean,\n isOpen: boolean,\n metadataSidebarProps: MetadataSidebarProps,\n onAnnotationSelect?: Function,\n onVersionChange?: Function,\n onVersionHistoryClick?: Function,\n versionsSidebarProps: VersionsSidebarProps,\n};\n\ntype State = {\n isInitialized: boolean,\n};\n\ntype ElementRefType = {\n current: null | Object,\n};\n\n// TODO: place into code splitting logic\nconst BASE_EVENT_NAME = '_JS_LOADING';\nconst MARK_NAME_JS_LOADING_DETAILS = `${ORIGIN_DETAILS_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_ACTIVITY = `${ORIGIN_ACTIVITY_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_SKILLS = `${ORIGIN_SKILLS_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_METADATA = `${ORIGIN_METADATA_SIDEBAR}${BASE_EVENT_NAME}`;\nconst MARK_NAME_JS_LOADING_VERSIONS = `${ORIGIN_VERSIONS_SIDEBAR}${BASE_EVENT_NAME}`;\n\nconst URL_TO_FEED_ITEM_TYPE = { annotations: 'annotation', comments: 'comment', tasks: 'task' };\n\nconst LoadableDetailsSidebar = SidebarUtils.getAsyncSidebarContent(SIDEBAR_VIEW_DETAILS, MARK_NAME_JS_LOADING_DETAILS);\nconst LoadableActivitySidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_ACTIVITY,\n MARK_NAME_JS_LOADING_ACTIVITY,\n);\nconst LoadableSkillsSidebar = SidebarUtils.getAsyncSidebarContent(SIDEBAR_VIEW_SKILLS, MARK_NAME_JS_LOADING_SKILLS);\nconst LoadableMetadataSidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_METADATA,\n MARK_NAME_JS_LOADING_METADATA,\n);\nconst LoadableVersionsSidebar = SidebarUtils.getAsyncSidebarContent(\n SIDEBAR_VIEW_VERSIONS,\n MARK_NAME_JS_LOADING_VERSIONS,\n);\n\nclass SidebarPanels extends React.Component<Props, State> {\n activitySidebar: ElementRefType = React.createRef();\n\n detailsSidebar: ElementRefType = React.createRef();\n\n metadataSidebar: ElementRefType = React.createRef();\n\n state: State = { isInitialized: false };\n\n versionsSidebar: ElementRefType = React.createRef();\n\n componentDidMount() {\n this.setState({ isInitialized: true });\n }\n\n /**\n * Refreshes the contents of the active sidebar\n * @returns {void}\n */\n refresh(shouldRefreshCache: boolean = true): void {\n const { current: activitySidebar } = this.activitySidebar;\n const { current: detailsSidebar } = this.detailsSidebar;\n const { current: metadataSidebar } = this.metadataSidebar;\n const { current: versionsSidebar } = this.versionsSidebar;\n\n if (activitySidebar) {\n activitySidebar.refresh(shouldRefreshCache);\n }\n\n if (detailsSidebar) {\n detailsSidebar.refresh();\n }\n\n if (metadataSidebar) {\n metadataSidebar.refresh();\n }\n\n if (versionsSidebar) {\n versionsSidebar.refresh();\n }\n }\n\n render() {\n const {\n activitySidebarProps,\n currentUser,\n currentUserError,\n detailsSidebarProps,\n elementId,\n file,\n fileId,\n getPreview,\n getViewer,\n hasActivity,\n hasDetails,\n hasMetadata,\n hasSkills,\n hasVersions,\n isOpen,\n metadataSidebarProps,\n onAnnotationSelect,\n onVersionChange,\n onVersionHistoryClick,\n versionsSidebarProps,\n }: Props = this.props;\n\n const { isInitialized } = this.state;\n\n if (!isOpen || (!hasActivity && !hasDetails && !hasMetadata && !hasSkills && !hasVersions)) {\n return null;\n }\n\n return (\n <Switch>\n {hasSkills && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_SKILLS}`}\n render={() => (\n <LoadableSkillsSidebar\n elementId={elementId}\n key={file.id}\n file={file}\n getPreview={getPreview}\n getViewer={getViewer}\n hasSidebarInitialized={isInitialized}\n startMarkName={MARK_NAME_JS_LOADING_SKILLS}\n />\n )}\n />\n )}\n {/* This handles both the default activity sidebar and the activity sidebar with a\n comment or task deeplink. */}\n {hasActivity && (\n <Route\n exact\n path={[\n `/${SIDEBAR_VIEW_ACTIVITY}`,\n `/${SIDEBAR_VIEW_ACTIVITY}/:activeFeedEntryType(annotations)/:fileVersionId/:activeFeedEntryId?`,\n `/${SIDEBAR_VIEW_ACTIVITY}/:activeFeedEntryType(comments|tasks)/:activeFeedEntryId?`,\n ]}\n render={({ match }) => {\n const matchEntryType = match.params.activeFeedEntryType;\n const activeFeedEntryType = matchEntryType\n ? URL_TO_FEED_ITEM_TYPE[matchEntryType]\n : undefined;\n return (\n <LoadableActivitySidebar\n elementId={elementId}\n currentUser={currentUser}\n currentUserError={currentUserError}\n file={file}\n hasSidebarInitialized={isInitialized}\n onAnnotationSelect={onAnnotationSelect}\n onVersionChange={onVersionChange}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.activitySidebar}\n startMarkName={MARK_NAME_JS_LOADING_ACTIVITY}\n activeFeedEntryId={match.params.activeFeedEntryId}\n activeFeedEntryType={match.params.activeFeedEntryId && activeFeedEntryType}\n {...activitySidebarProps}\n />\n );\n }}\n />\n )}\n {hasDetails && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_DETAILS}`}\n render={() => (\n <LoadableDetailsSidebar\n elementId={elementId}\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n key={fileId}\n hasVersions={hasVersions}\n onVersionHistoryClick={onVersionHistoryClick}\n ref={this.detailsSidebar}\n startMarkName={MARK_NAME_JS_LOADING_DETAILS}\n {...detailsSidebarProps}\n />\n )}\n />\n )}\n {hasMetadata && (\n <Route\n exact\n path={`/${SIDEBAR_VIEW_METADATA}`}\n render={() => (\n <LoadableMetadataSidebar\n elementId={elementId}\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n ref={this.metadataSidebar}\n startMarkName={MARK_NAME_JS_LOADING_METADATA}\n {...metadataSidebarProps}\n />\n )}\n />\n )}\n {hasVersions && (\n <Route\n path=\"/:sidebar(activity|details)/versions/:versionId?\"\n render={({ match }) => (\n <LoadableVersionsSidebar\n fileId={fileId}\n hasSidebarInitialized={isInitialized}\n key={fileId}\n onVersionChange={onVersionChange}\n parentName={match.params.sidebar}\n ref={this.versionsSidebar}\n versionId={match.params.versionId}\n {...versionsSidebarProps}\n />\n )}\n />\n )}\n <Route\n render={() => {\n let redirect = '';\n\n if (hasSkills) {\n redirect = SIDEBAR_VIEW_SKILLS;\n } else if (hasActivity) {\n redirect = SIDEBAR_VIEW_ACTIVITY;\n } else if (hasDetails) {\n redirect = SIDEBAR_VIEW_DETAILS;\n } else if (hasMetadata) {\n redirect = SIDEBAR_VIEW_METADATA;\n }\n\n return <Redirect to={{ pathname: `/${redirect}`, state: { silent: true } }} />;\n }}\n />\n </Switch>\n );\n }\n}\n\nexport { SidebarPanels as SidebarPanelsComponent };\nexport default flow([withSidebarAnnotations, withAPIContext, withAnnotatorContext, withRouterAndRef])(SidebarPanels);\n"],"file":"SidebarPanels.js"}
|