box-ui-elements 23.4.0-beta.19 → 23.4.0-beta.20

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.
Files changed (26) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/picker.js +1 -1
  3. package/dist/preview.js +1 -1
  4. package/dist/sidebar.js +1 -1
  5. package/dist/uploader.js +1 -1
  6. package/es/elements/common/types/SidebarNavigation.js.flow +1 -1
  7. package/es/elements/common/types/SidebarNavigation.js.map +1 -1
  8. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js +38 -8
  9. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.flow +104 -48
  10. package/es/elements/content-sidebar/versions/StaticVersionSidebar.js.map +1 -1
  11. package/es/elements/content-sidebar/versions/VersionsSidebar.js +37 -8
  12. package/es/elements/content-sidebar/versions/VersionsSidebar.js.flow +101 -48
  13. package/es/elements/content-sidebar/versions/VersionsSidebar.js.map +1 -1
  14. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js +2 -1
  15. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.flow +3 -2
  16. package/es/elements/content-sidebar/versions/VersionsSidebarContainer.js.map +1 -1
  17. package/es/src/elements/common/types/SidebarNavigation.d.ts +1 -1
  18. package/package.json +3 -3
  19. package/src/elements/common/types/SidebarNavigation.js.flow +1 -1
  20. package/src/elements/common/types/SidebarNavigation.ts +1 -1
  21. package/src/elements/content-sidebar/versions/StaticVersionSidebar.js +104 -48
  22. package/src/elements/content-sidebar/versions/VersionsSidebar.js +101 -48
  23. package/src/elements/content-sidebar/versions/VersionsSidebarContainer.js +3 -2
  24. package/src/elements/content-sidebar/versions/__tests__/StaticVersionSidebar.test.js +56 -2
  25. package/src/elements/content-sidebar/versions/__tests__/VersionsSidebar.test.js +50 -1
  26. package/src/elements/content-sidebar/versions/__tests__/__snapshots__/VersionsSidebarContainer.test.js.snap +2 -2
@@ -30,7 +30,7 @@ export type SidebarNavigation = {
30
30
  };
31
31
 
32
32
  export type InternalSidebarNavigation = SidebarNavigation & {
33
- open: boolean,
33
+ open?: boolean,
34
34
  };
35
35
 
36
36
  export type SidebarNavigationHandler = (sidebar: SidebarNavigation, replace?: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarNavigation.js","names":["ViewType","FeedEntryType"],"sources":["../../../../src/elements/common/types/SidebarNavigation.ts"],"sourcesContent":["export enum ViewType {\n BOXAI = 'boxai',\n SKILLS = 'skills',\n ACTIVITY = 'activity',\n DETAILS = 'details',\n METADATA = 'metadata',\n DOCGEN = 'docgen',\n}\n\nexport enum FeedEntryType {\n ANNOTATIONS = 'annotations',\n COMMENTS = 'comments',\n TASKS = 'tasks',\n}\n\ntype VersionSidebarView = {\n sidebar: ViewType.ACTIVITY | ViewType.DETAILS;\n versionId: string;\n};\n\nexport type ActivityAnnotationsSidebarView = {\n sidebar: ViewType.ACTIVITY;\n activeFeedEntryType: FeedEntryType.ANNOTATIONS;\n fileVersionId: string;\n activeFeedEntryId: string;\n};\ntype ActivityCommentsSidebarView = {\n sidebar: ViewType.ACTIVITY;\n activeFeedEntryType: FeedEntryType.COMMENTS | FeedEntryType.TASKS;\n activeFeedEntryId: string;\n};\n\nexport type SidebarNavigation =\n | {\n sidebar: ViewType;\n }\n | VersionSidebarView\n | ActivityCommentsSidebarView\n | ActivityAnnotationsSidebarView;\n\nexport type InternalSidebarNavigation = SidebarNavigation & {\n open: boolean;\n};\n\nexport type SidebarNavigationHandler = (sidebar: SidebarNavigation, replace?: boolean) => void;\n\nexport type InternalSidebarNavigationHandler = (sidebar: InternalSidebarNavigation, replace?: boolean) => void;\n"],"mappings":"AAAA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AASpB,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"SidebarNavigation.js","names":["ViewType","FeedEntryType"],"sources":["../../../../src/elements/common/types/SidebarNavigation.ts"],"sourcesContent":["export enum ViewType {\n BOXAI = 'boxai',\n SKILLS = 'skills',\n ACTIVITY = 'activity',\n DETAILS = 'details',\n METADATA = 'metadata',\n DOCGEN = 'docgen',\n}\n\nexport enum FeedEntryType {\n ANNOTATIONS = 'annotations',\n COMMENTS = 'comments',\n TASKS = 'tasks',\n}\n\ntype VersionSidebarView = {\n sidebar: ViewType.ACTIVITY | ViewType.DETAILS;\n versionId: string;\n};\n\nexport type ActivityAnnotationsSidebarView = {\n sidebar: ViewType.ACTIVITY;\n activeFeedEntryType: FeedEntryType.ANNOTATIONS;\n fileVersionId: string;\n activeFeedEntryId: string;\n};\ntype ActivityCommentsSidebarView = {\n sidebar: ViewType.ACTIVITY;\n activeFeedEntryType: FeedEntryType.COMMENTS | FeedEntryType.TASKS;\n activeFeedEntryId: string;\n};\n\nexport type SidebarNavigation =\n | {\n sidebar: ViewType;\n }\n | VersionSidebarView\n | ActivityCommentsSidebarView\n | ActivityAnnotationsSidebarView;\n\nexport type InternalSidebarNavigation = SidebarNavigation & {\n open?: boolean;\n};\n\nexport type SidebarNavigationHandler = (sidebar: SidebarNavigation, replace?: boolean) => void;\n\nexport type InternalSidebarNavigationHandler = (sidebar: InternalSidebarNavigation, replace?: boolean) => void;\n"],"mappings":"AAAA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AASpB,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
1
2
  /**
2
3
  *
3
4
  * @file Static Versions Sidebar component
@@ -14,10 +15,17 @@ import { LoadingIndicatorWrapper } from '../../../components/loading-indicator';
14
15
  import VersionsMenu from './VersionsMenu';
15
16
  import messages from './messages';
16
17
  import './StaticVersionsSidebar.scss';
17
- const StaticVersionsSidebar = ({
18
+ const {
19
+ useCallback
20
+ } = React;
21
+ const StaticVersionsContent = ({
22
+ history,
23
+ internalSidebarNavigation,
24
+ internalSidebarNavigationHandler,
18
25
  isLoading,
19
26
  onUpgradeClick,
20
- parentName
27
+ parentName,
28
+ routerDisabled
21
29
  }) => {
22
30
  const versionTimestamp = new Date();
23
31
  versionTimestamp.setDate(versionTimestamp.getDate() - 1);
@@ -36,9 +44,16 @@ const StaticVersionsSidebar = ({
36
44
  uploader_display_name: 'John Doe'
37
45
  };
38
46
  });
39
- return /*#__PURE__*/React.createElement(Route, null, ({
40
- history
41
- }) => /*#__PURE__*/React.createElement("div", {
47
+ const handleBackClick = useCallback(() => {
48
+ if (routerDisabled && internalSidebarNavigationHandler) {
49
+ internalSidebarNavigationHandler({
50
+ sidebar: parentName
51
+ });
52
+ } else if (!routerDisabled && history) {
53
+ history.push(`/${parentName}`);
54
+ }
55
+ }, [parentName, routerDisabled, internalSidebarNavigationHandler, history]);
56
+ return /*#__PURE__*/React.createElement("div", {
42
57
  className: "bcs-StaticVersionSidebar",
43
58
  role: "tabpanel",
44
59
  "data-resin-component": "preview",
@@ -49,7 +64,7 @@ const StaticVersionsSidebar = ({
49
64
  className: "bcs-StaticVersionSidebar-title"
50
65
  }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BackButton, {
51
66
  "data-resin-target": "back",
52
- onClick: () => history.push(`/${parentName}`)
67
+ onClick: handleBackClick
53
68
  }), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionsTitle)))), /*#__PURE__*/React.createElement("div", {
54
69
  className: "bcs-StaticVersionSidebar-content-wrapper"
55
70
  }, /*#__PURE__*/React.createElement(LoadingIndicatorWrapper, {
@@ -60,7 +75,9 @@ const StaticVersionsSidebar = ({
60
75
  versions: versions,
61
76
  fileId: "1",
62
77
  versionCount: 3,
63
- versionLimit: 3
78
+ versionLimit: 3,
79
+ routerDisabled: routerDisabled,
80
+ internalSidebarNavigation: internalSidebarNavigation
64
81
  }))), /*#__PURE__*/React.createElement("div", {
65
82
  className: "bcs-StaticVersionSidebar-upsell-wrapper"
66
83
  }, /*#__PURE__*/React.createElement("div", {
@@ -74,7 +91,20 @@ const StaticVersionsSidebar = ({
74
91
  "data-resin-target": "versioning_error_upgrade_cta",
75
92
  onClick: onUpgradeClick,
76
93
  type: "button"
77
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.upgradeButton))))));
94
+ }, /*#__PURE__*/React.createElement(FormattedMessage, messages.upgradeButton)))));
95
+ };
96
+ const StaticVersionsSidebar = props => {
97
+ const {
98
+ routerDisabled
99
+ } = props;
100
+ if (routerDisabled) {
101
+ return /*#__PURE__*/React.createElement(StaticVersionsContent, props);
102
+ }
103
+ return /*#__PURE__*/React.createElement(Route, null, ({
104
+ history
105
+ }) => /*#__PURE__*/React.createElement(StaticVersionsContent, _extends({}, props, {
106
+ history: history
107
+ })));
78
108
  };
79
109
  export default StaticVersionsSidebar;
80
110
  //# sourceMappingURL=StaticVersionSidebar.js.map
@@ -14,18 +14,46 @@ import BackButton from '../../common/back-button';
14
14
  import PrimaryButton from '../../../components/primary-button';
15
15
  import { LoadingIndicatorWrapper } from '../../../components/loading-indicator';
16
16
  import VersionsMenu from './VersionsMenu';
17
+ import type {
18
+ InternalSidebarNavigation,
19
+ InternalSidebarNavigationHandler,
20
+ ViewTypeValues,
21
+ } from '../../common/types/SidebarNavigation';
17
22
 
18
23
  import messages from './messages';
19
24
 
20
25
  import './StaticVersionsSidebar.scss';
21
26
 
27
+ const { useCallback } = React;
28
+
22
29
  type Props = {
30
+ internalSidebarNavigation?: InternalSidebarNavigation,
31
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
32
+ isLoading: boolean,
33
+ onUpgradeClick: () => void,
34
+ parentName: ViewTypeValues,
35
+ routerDisabled?: boolean,
36
+ };
37
+
38
+ type StaticVersionsContentProps = {
39
+ history?: any,
40
+ internalSidebarNavigation?: InternalSidebarNavigation,
41
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
23
42
  isLoading: boolean,
24
43
  onUpgradeClick: () => void,
25
- parentName: string,
44
+ parentName: ViewTypeValues,
45
+ routerDisabled?: boolean,
26
46
  };
27
47
 
28
- const StaticVersionsSidebar = ({ isLoading, onUpgradeClick, parentName }: Props): React.Node => {
48
+ const StaticVersionsContent = ({
49
+ history,
50
+ internalSidebarNavigation,
51
+ internalSidebarNavigationHandler,
52
+ isLoading,
53
+ onUpgradeClick,
54
+ parentName,
55
+ routerDisabled,
56
+ }: StaticVersionsContentProps): React.Node => {
29
57
  const versionTimestamp = new Date();
30
58
  versionTimestamp.setDate(versionTimestamp.getDate() - 1);
31
59
 
@@ -45,55 +73,83 @@ const StaticVersionsSidebar = ({ isLoading, onUpgradeClick, parentName }: Props)
45
73
  };
46
74
  });
47
75
 
76
+ const handleBackClick = useCallback(() => {
77
+ if (routerDisabled && internalSidebarNavigationHandler) {
78
+ internalSidebarNavigationHandler({ sidebar: parentName });
79
+ } else if (!routerDisabled && history) {
80
+ history.push(`/${parentName}`);
81
+ }
82
+ }, [parentName, routerDisabled, internalSidebarNavigationHandler, history]);
83
+
48
84
  return (
49
- <Route>
50
- {({ history }) => (
51
- <div
52
- className="bcs-StaticVersionSidebar"
53
- role="tabpanel"
54
- data-resin-component="preview"
55
- data-resin-feature="versions"
85
+ <div
86
+ className="bcs-StaticVersionSidebar"
87
+ role="tabpanel"
88
+ data-resin-component="preview"
89
+ data-resin-feature="versions"
90
+ >
91
+ <div className="bcs-StaticVersionSidebar-header">
92
+ <h3 className="bcs-StaticVersionSidebar-title">
93
+ <>
94
+ <BackButton
95
+ data-resin-target="back"
96
+ onClick={handleBackClick}
97
+ />
98
+ <FormattedMessage {...messages.versionsTitle} />
99
+ </>
100
+ </h3>
101
+ </div>
102
+
103
+ <div className="bcs-StaticVersionSidebar-content-wrapper">
104
+ <LoadingIndicatorWrapper
105
+ className="bcs-StaticVersionSidebar-content"
106
+ crawlerPosition="top"
107
+ isLoading={isLoading}
56
108
  >
57
- <div className="bcs-StaticVersionSidebar-header">
58
- <h3 className="bcs-StaticVersionSidebar-title">
59
- <>
60
- <BackButton data-resin-target="back" onClick={() => history.push(`/${parentName}`)} />
61
- <FormattedMessage {...messages.versionsTitle} />
62
- </>
63
- </h3>
64
- </div>
65
-
66
- <div className="bcs-StaticVersionSidebar-content-wrapper">
67
- <LoadingIndicatorWrapper
68
- className="bcs-StaticVersionSidebar-content"
69
- crawlerPosition="top"
70
- isLoading={isLoading}
71
- >
72
- <VersionsMenu versions={versions} fileId="1" versionCount={3} versionLimit={3} />
73
- </LoadingIndicatorWrapper>
74
- </div>
75
-
76
- <div className="bcs-StaticVersionSidebar-upsell-wrapper">
77
- <div className="bcs-StaticVersionSidebar-upsell">
78
- <BoxDrive140 className="bcs-StaticVersionSidebar-upsell-icon" />
79
- <p className="bcs-StaticVersionSidebar-upsell-header">
80
- <FormattedMessage {...messages.versionUpgradeLink} />
81
- </p>
82
- <p>
83
- <FormattedMessage {...messages.versionUpsell} />
84
- </p>
85
- <PrimaryButton
86
- className="bcs-StaticVersionSidebar-upsell-button"
87
- data-resin-target="versioning_error_upgrade_cta"
88
- onClick={onUpgradeClick}
89
- type="button"
90
- >
91
- <FormattedMessage {...messages.upgradeButton} />
92
- </PrimaryButton>
93
- </div>
94
- </div>
109
+ <VersionsMenu
110
+ versions={versions}
111
+ fileId="1"
112
+ versionCount={3}
113
+ versionLimit={3}
114
+ routerDisabled={routerDisabled}
115
+ internalSidebarNavigation={internalSidebarNavigation}
116
+ />
117
+ </LoadingIndicatorWrapper>
118
+ </div>
119
+
120
+ <div className="bcs-StaticVersionSidebar-upsell-wrapper">
121
+ <div className="bcs-StaticVersionSidebar-upsell">
122
+ <BoxDrive140 className="bcs-StaticVersionSidebar-upsell-icon" />
123
+ <p className="bcs-StaticVersionSidebar-upsell-header">
124
+ <FormattedMessage {...messages.versionUpgradeLink} />
125
+ </p>
126
+ <p>
127
+ <FormattedMessage {...messages.versionUpsell} />
128
+ </p>
129
+ <PrimaryButton
130
+ className="bcs-StaticVersionSidebar-upsell-button"
131
+ data-resin-target="versioning_error_upgrade_cta"
132
+ onClick={onUpgradeClick}
133
+ type="button"
134
+ >
135
+ <FormattedMessage {...messages.upgradeButton} />
136
+ </PrimaryButton>
95
137
  </div>
96
- )}
138
+ </div>
139
+ </div>
140
+ );
141
+ };
142
+
143
+ const StaticVersionsSidebar = (props: Props): React.Node => {
144
+ const { routerDisabled } = props;
145
+
146
+ if (routerDisabled) {
147
+ return <StaticVersionsContent {...props} />;
148
+ }
149
+
150
+ return (
151
+ <Route>
152
+ {({ history }) => <StaticVersionsContent {...props} history={history} />}
97
153
  </Route>
98
154
  );
99
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StaticVersionSidebar.js","names":["React","FormattedMessage","Route","BoxDrive140","BackButton","PrimaryButton","LoadingIndicatorWrapper","VersionsMenu","messages","StaticVersionsSidebar","isLoading","onUpgradeClick","parentName","versionTimestamp","Date","setDate","getDate","versions","map","versionNumber","id","version_number","type","permissions","can_preview","created_at","toUTCString","modified_by","size","trashed_at","uploader_display_name","createElement","history","className","role","Fragment","onClick","push","versionsTitle","crawlerPosition","fileId","versionCount","versionLimit","versionUpgradeLink","versionUpsell","upgradeButton"],"sources":["../../../../src/elements/content-sidebar/versions/StaticVersionSidebar.js"],"sourcesContent":["/**\n * @flow\n * @file Static Versions Sidebar component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Route } from 'react-router-dom';\n\nimport BoxDrive140 from '../../../illustration/BoxDrive140';\n\nimport BackButton from '../../common/back-button';\nimport PrimaryButton from '../../../components/primary-button';\nimport { LoadingIndicatorWrapper } from '../../../components/loading-indicator';\nimport VersionsMenu from './VersionsMenu';\n\nimport messages from './messages';\n\nimport './StaticVersionsSidebar.scss';\n\ntype Props = {\n isLoading: boolean,\n onUpgradeClick: () => void,\n parentName: string,\n};\n\nconst StaticVersionsSidebar = ({ isLoading, onUpgradeClick, parentName }: Props): React.Node => {\n const versionTimestamp = new Date();\n versionTimestamp.setDate(versionTimestamp.getDate() - 1);\n\n const versions = ['1', '2', '3'].map(versionNumber => {\n return {\n id: versionNumber,\n version_number: versionNumber,\n type: 'file_version',\n permissions: {\n can_preview: true,\n },\n created_at: versionTimestamp.toUTCString(),\n modified_by: null,\n size: 1875887,\n trashed_at: null,\n uploader_display_name: 'John Doe',\n };\n });\n\n return (\n <Route>\n {({ history }) => (\n <div\n className=\"bcs-StaticVersionSidebar\"\n role=\"tabpanel\"\n data-resin-component=\"preview\"\n data-resin-feature=\"versions\"\n >\n <div className=\"bcs-StaticVersionSidebar-header\">\n <h3 className=\"bcs-StaticVersionSidebar-title\">\n <>\n <BackButton data-resin-target=\"back\" onClick={() => history.push(`/${parentName}`)} />\n <FormattedMessage {...messages.versionsTitle} />\n </>\n </h3>\n </div>\n\n <div className=\"bcs-StaticVersionSidebar-content-wrapper\">\n <LoadingIndicatorWrapper\n className=\"bcs-StaticVersionSidebar-content\"\n crawlerPosition=\"top\"\n isLoading={isLoading}\n >\n <VersionsMenu versions={versions} fileId=\"1\" versionCount={3} versionLimit={3} />\n </LoadingIndicatorWrapper>\n </div>\n\n <div className=\"bcs-StaticVersionSidebar-upsell-wrapper\">\n <div className=\"bcs-StaticVersionSidebar-upsell\">\n <BoxDrive140 className=\"bcs-StaticVersionSidebar-upsell-icon\" />\n <p className=\"bcs-StaticVersionSidebar-upsell-header\">\n <FormattedMessage {...messages.versionUpgradeLink} />\n </p>\n <p>\n <FormattedMessage {...messages.versionUpsell} />\n </p>\n <PrimaryButton\n className=\"bcs-StaticVersionSidebar-upsell-button\"\n data-resin-target=\"versioning_error_upgrade_cta\"\n onClick={onUpgradeClick}\n type=\"button\"\n >\n <FormattedMessage {...messages.upgradeButton} />\n </PrimaryButton>\n </div>\n </div>\n </div>\n )}\n </Route>\n );\n};\n\nexport default StaticVersionsSidebar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StaticVersionSidebar.js","names":["React","FormattedMessage","Route","BoxDrive140","BackButton","PrimaryButton","LoadingIndicatorWrapper","VersionsMenu","messages","useCallback","StaticVersionsContent","history","internalSidebarNavigation","internalSidebarNavigationHandler","isLoading","onUpgradeClick","parentName","routerDisabled","versionTimestamp","Date","setDate","getDate","versions","map","versionNumber","id","version_number","type","permissions","can_preview","created_at","toUTCString","modified_by","size","trashed_at","uploader_display_name","handleBackClick","sidebar","push","createElement","className","role","Fragment","onClick","versionsTitle","crawlerPosition","fileId","versionCount","versionLimit","versionUpgradeLink","versionUpsell","upgradeButton","StaticVersionsSidebar","props","_extends"],"sources":["../../../../src/elements/content-sidebar/versions/StaticVersionSidebar.js"],"sourcesContent":["/**\n * @flow\n * @file Static Versions Sidebar component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Route } from 'react-router-dom';\n\nimport BoxDrive140 from '../../../illustration/BoxDrive140';\n\nimport BackButton from '../../common/back-button';\nimport PrimaryButton from '../../../components/primary-button';\nimport { LoadingIndicatorWrapper } from '../../../components/loading-indicator';\nimport VersionsMenu from './VersionsMenu';\nimport type {\n InternalSidebarNavigation,\n InternalSidebarNavigationHandler,\n ViewTypeValues,\n} from '../../common/types/SidebarNavigation';\n\nimport messages from './messages';\n\nimport './StaticVersionsSidebar.scss';\n\nconst { useCallback } = React;\n\ntype Props = {\n internalSidebarNavigation?: InternalSidebarNavigation,\n internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,\n isLoading: boolean,\n onUpgradeClick: () => void,\n parentName: ViewTypeValues,\n routerDisabled?: boolean,\n};\n\ntype StaticVersionsContentProps = {\n history?: any,\n internalSidebarNavigation?: InternalSidebarNavigation,\n internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,\n isLoading: boolean,\n onUpgradeClick: () => void,\n parentName: ViewTypeValues,\n routerDisabled?: boolean,\n};\n\nconst StaticVersionsContent = ({\n history,\n internalSidebarNavigation,\n internalSidebarNavigationHandler,\n isLoading,\n onUpgradeClick,\n parentName,\n routerDisabled,\n}: StaticVersionsContentProps): React.Node => {\n const versionTimestamp = new Date();\n versionTimestamp.setDate(versionTimestamp.getDate() - 1);\n\n const versions = ['1', '2', '3'].map(versionNumber => {\n return {\n id: versionNumber,\n version_number: versionNumber,\n type: 'file_version',\n permissions: {\n can_preview: true,\n },\n created_at: versionTimestamp.toUTCString(),\n modified_by: null,\n size: 1875887,\n trashed_at: null,\n uploader_display_name: 'John Doe',\n };\n });\n\n const handleBackClick = useCallback(() => {\n if (routerDisabled && internalSidebarNavigationHandler) {\n internalSidebarNavigationHandler({ sidebar: parentName });\n } else if (!routerDisabled && history) {\n history.push(`/${parentName}`);\n }\n }, [parentName, routerDisabled, internalSidebarNavigationHandler, history]);\n\n return (\n <div\n className=\"bcs-StaticVersionSidebar\"\n role=\"tabpanel\"\n data-resin-component=\"preview\"\n data-resin-feature=\"versions\"\n >\n <div className=\"bcs-StaticVersionSidebar-header\">\n <h3 className=\"bcs-StaticVersionSidebar-title\">\n <>\n <BackButton \n data-resin-target=\"back\" \n onClick={handleBackClick} \n />\n <FormattedMessage {...messages.versionsTitle} />\n </>\n </h3>\n </div>\n\n <div className=\"bcs-StaticVersionSidebar-content-wrapper\">\n <LoadingIndicatorWrapper\n className=\"bcs-StaticVersionSidebar-content\"\n crawlerPosition=\"top\"\n isLoading={isLoading}\n >\n <VersionsMenu\n versions={versions}\n fileId=\"1\"\n versionCount={3}\n versionLimit={3}\n routerDisabled={routerDisabled}\n internalSidebarNavigation={internalSidebarNavigation}\n />\n </LoadingIndicatorWrapper>\n </div>\n\n <div className=\"bcs-StaticVersionSidebar-upsell-wrapper\">\n <div className=\"bcs-StaticVersionSidebar-upsell\">\n <BoxDrive140 className=\"bcs-StaticVersionSidebar-upsell-icon\" />\n <p className=\"bcs-StaticVersionSidebar-upsell-header\">\n <FormattedMessage {...messages.versionUpgradeLink} />\n </p>\n <p>\n <FormattedMessage {...messages.versionUpsell} />\n </p>\n <PrimaryButton\n className=\"bcs-StaticVersionSidebar-upsell-button\"\n data-resin-target=\"versioning_error_upgrade_cta\"\n onClick={onUpgradeClick}\n type=\"button\"\n >\n <FormattedMessage {...messages.upgradeButton} />\n </PrimaryButton>\n </div>\n </div>\n </div>\n );\n};\n\nconst StaticVersionsSidebar = (props: Props): React.Node => {\n const { routerDisabled } = props;\n\n if (routerDisabled) {\n return <StaticVersionsContent {...props} />;\n }\n\n return (\n <Route>\n {({ history }) => <StaticVersionsContent {...props} history={history} />}\n </Route>\n );\n};\n\nexport default StaticVersionsSidebar;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- const _excluded = ["error", "isLoading", "parentName", "versions"];
1
+ const _excluded = ["error", "history", "internalSidebarNavigation", "internalSidebarNavigationHandler", "isLoading", "parentName", "routerDisabled", "versions"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
@@ -19,12 +19,19 @@ import BackButton from '../../common/back-button';
19
19
  import { DEFAULT_FETCH_END } from '../../../constants';
20
20
  import { LoadingIndicatorWrapper } from '../../../components/loading-indicator';
21
21
  import './VersionsSidebar.scss';
22
+ const {
23
+ useCallback
24
+ } = React;
22
25
  const MAX_VERSIONS = DEFAULT_FETCH_END;
23
- const VersionsSidebar = _ref => {
26
+ const VersionsContent = _ref => {
24
27
  let {
25
28
  error,
29
+ history,
30
+ internalSidebarNavigation,
31
+ internalSidebarNavigationHandler,
26
32
  isLoading,
27
33
  parentName,
34
+ routerDisabled,
28
35
  versions
29
36
  } = _ref,
30
37
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -32,15 +39,22 @@ const VersionsSidebar = _ref => {
32
39
  const showVersions = !!versions.length;
33
40
  const showEmpty = !isLoading && !showVersions;
34
41
  const showError = !!error;
35
- return /*#__PURE__*/React.createElement(Route, null, ({
36
- history
37
- }) => /*#__PURE__*/React.createElement(SidebarContent, {
42
+ const handleBackClick = useCallback(() => {
43
+ if (routerDisabled && internalSidebarNavigationHandler) {
44
+ internalSidebarNavigationHandler({
45
+ sidebar: parentName
46
+ });
47
+ } else if (!routerDisabled && history) {
48
+ history.push(`/${parentName}`);
49
+ }
50
+ }, [parentName, routerDisabled, internalSidebarNavigationHandler, history]);
51
+ return /*#__PURE__*/React.createElement(SidebarContent, {
38
52
  className: "bcs-Versions",
39
53
  "data-resin-component": "preview",
40
54
  "data-resin-feature": "versions",
41
55
  title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BackButton, {
42
56
  "data-resin-target": "back",
43
- onClick: () => history.push(`/${parentName}`)
57
+ onClick: handleBackClick
44
58
  }), /*#__PURE__*/React.createElement(FormattedMessage, messages.versionsTitle))
45
59
  }, /*#__PURE__*/React.createElement(LoadingIndicatorWrapper, {
46
60
  className: "bcs-Versions-content",
@@ -54,7 +68,9 @@ const VersionsSidebar = _ref => {
54
68
  className: "bcs-Versions-menu",
55
69
  "data-testid": "bcs-Versions-menu"
56
70
  }, /*#__PURE__*/React.createElement(VersionsMenu, _extends({
57
- versions: versions
71
+ versions: versions,
72
+ routerDisabled: routerDisabled,
73
+ internalSidebarNavigation: internalSidebarNavigation
58
74
  }, rest))), showLimit && /*#__PURE__*/React.createElement("div", {
59
75
  className: "bcs-Versions-maxEntries",
60
76
  "data-testid": "max-versions"
@@ -62,7 +78,20 @@ const VersionsSidebar = _ref => {
62
78
  values: {
63
79
  maxVersions: MAX_VERSIONS
64
80
  }
65
- }))))));
81
+ })))));
82
+ };
83
+ const VersionsSidebar = props => {
84
+ const {
85
+ routerDisabled
86
+ } = props;
87
+ if (routerDisabled) {
88
+ return /*#__PURE__*/React.createElement(VersionsContent, props);
89
+ }
90
+ return /*#__PURE__*/React.createElement(Route, null, ({
91
+ history
92
+ }) => /*#__PURE__*/React.createElement(VersionsContent, _extends({}, props, {
93
+ history: history
94
+ })));
66
95
  };
67
96
  export default VersionsSidebar;
68
97
  //# sourceMappingURL=VersionsSidebar.js.map
@@ -16,75 +16,128 @@ import BackButton from '../../common/back-button';
16
16
  import { DEFAULT_FETCH_END } from '../../../constants';
17
17
  import { LoadingIndicatorWrapper } from '../../../components/loading-indicator';
18
18
  import type { BoxItemVersion } from '../../../common/types/core';
19
+ import type { InternalSidebarNavigation, InternalSidebarNavigationHandler, ViewTypeValues } from '../../common/types/SidebarNavigation';
19
20
  import './VersionsSidebar.scss';
20
21
 
22
+ const { useCallback } = React;
23
+
21
24
  const MAX_VERSIONS = DEFAULT_FETCH_END;
22
25
 
23
26
  type Props = {
24
27
  error?: MessageDescriptor,
25
28
  fileId: string,
29
+ internalSidebarNavigation?: InternalSidebarNavigation,
30
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
31
+ isLoading: boolean,
32
+ parentName: ViewTypeValues,
33
+ routerDisabled?: boolean,
34
+ versionCount: number,
35
+ versionLimit: number,
36
+ versions: Array<BoxItemVersion>,
37
+ };
38
+
39
+ type VersionsContentProps = {
40
+ error?: MessageDescriptor,
41
+ fileId: string,
42
+ history?: any,
43
+ internalSidebarNavigation?: InternalSidebarNavigation,
44
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
26
45
  isLoading: boolean,
27
- parentName: string,
46
+ parentName: ViewTypeValues,
47
+ routerDisabled?: boolean,
28
48
  versionCount: number,
29
49
  versionLimit: number,
30
50
  versions: Array<BoxItemVersion>,
31
51
  };
32
52
 
33
- const VersionsSidebar = ({ error, isLoading, parentName, versions, ...rest }: Props) => {
53
+ const VersionsContent = ({
54
+ error,
55
+ history,
56
+ internalSidebarNavigation,
57
+ internalSidebarNavigationHandler,
58
+ isLoading,
59
+ parentName,
60
+ routerDisabled,
61
+ versions,
62
+ ...rest
63
+ }: VersionsContentProps) => {
34
64
  const showLimit = versions.length >= MAX_VERSIONS;
35
65
  const showVersions = !!versions.length;
36
66
  const showEmpty = !isLoading && !showVersions;
37
67
  const showError = !!error;
38
68
 
69
+ const handleBackClick = useCallback(() => {
70
+ if (routerDisabled && internalSidebarNavigationHandler) {
71
+ internalSidebarNavigationHandler({ sidebar: parentName });
72
+ } else if (!routerDisabled && history) {
73
+ history.push(`/${parentName}`);
74
+ }
75
+ }, [parentName, routerDisabled, internalSidebarNavigationHandler, history]);
76
+
39
77
  return (
40
- <Route>
41
- {({ history }) => (
42
- <SidebarContent
43
- className="bcs-Versions"
44
- data-resin-component="preview"
45
- data-resin-feature="versions"
46
- title={
47
- <>
48
- <BackButton data-resin-target="back" onClick={() => history.push(`/${parentName}`)} />
49
- <FormattedMessage {...messages.versionsTitle} />
50
- </>
51
- }
52
- >
53
- <LoadingIndicatorWrapper
54
- className="bcs-Versions-content"
55
- crawlerPosition="top"
56
- isLoading={isLoading}
57
- >
58
- {showError && (
59
- <InlineError title={<FormattedMessage {...messages.versionServerError} />}>
60
- <FormattedMessage {...error} />
61
- </InlineError>
62
- )}
78
+ <SidebarContent
79
+ className="bcs-Versions"
80
+ data-resin-component="preview"
81
+ data-resin-feature="versions"
82
+ title={
83
+ <>
84
+ <BackButton data-resin-target="back" onClick={handleBackClick} />
85
+ <FormattedMessage {...messages.versionsTitle} />
86
+ </>
87
+ }
88
+ >
89
+ <LoadingIndicatorWrapper
90
+ className="bcs-Versions-content"
91
+ crawlerPosition="top"
92
+ isLoading={isLoading}
93
+ >
94
+ {showError && (
95
+ <InlineError title={<FormattedMessage {...messages.versionServerError} />}>
96
+ <FormattedMessage {...error} />
97
+ </InlineError>
98
+ )}
99
+
100
+ {showEmpty && (
101
+ <div className="bcs-Versions-empty">
102
+ <FormattedMessage {...messages.versionsEmpty} />
103
+ </div>
104
+ )}
63
105
 
64
- {showEmpty && (
65
- <div className="bcs-Versions-empty">
66
- <FormattedMessage {...messages.versionsEmpty} />
67
- </div>
68
- )}
106
+ {showVersions && (
107
+ <div className="bcs-Versions-menu" data-testid="bcs-Versions-menu">
108
+ <VersionsMenu
109
+ versions={versions}
110
+ routerDisabled={routerDisabled}
111
+ internalSidebarNavigation={internalSidebarNavigation}
112
+ {...rest}
113
+ />
114
+ </div>
115
+ )}
116
+ {showLimit && (
117
+ <div className="bcs-Versions-maxEntries" data-testid="max-versions">
118
+ <FormattedMessage
119
+ {...messages.versionMaxEntries}
120
+ values={{
121
+ maxVersions: MAX_VERSIONS,
122
+ }}
123
+ />
124
+ </div>
125
+ )}
126
+ </LoadingIndicatorWrapper>
127
+ </SidebarContent>
128
+ );
129
+ };
69
130
 
70
- {showVersions && (
71
- <div className="bcs-Versions-menu" data-testid="bcs-Versions-menu">
72
- <VersionsMenu versions={versions} {...rest} />
73
- </div>
74
- )}
75
- {showLimit && (
76
- <div className="bcs-Versions-maxEntries" data-testid="max-versions">
77
- <FormattedMessage
78
- {...messages.versionMaxEntries}
79
- values={{
80
- maxVersions: MAX_VERSIONS,
81
- }}
82
- />
83
- </div>
84
- )}
85
- </LoadingIndicatorWrapper>
86
- </SidebarContent>
87
- )}
131
+ const VersionsSidebar = (props: Props) => {
132
+ const { routerDisabled } = props;
133
+
134
+ if (routerDisabled) {
135
+ return <VersionsContent {...props} />;
136
+ }
137
+
138
+ return (
139
+ <Route>
140
+ {({ history }) => <VersionsContent {...props} history={history} />}
88
141
  </Route>
89
142
  );
90
143
  };