@atlaskit/media-viewer 48.1.7 → 48.2.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/CHANGELOG.md +11 -0
- package/dist/cjs/analytics/index.js +2 -3
- package/dist/cjs/analytics/ufoExperiences.js +1 -1
- package/dist/cjs/components/media-viewer.js +13 -1
- package/dist/cjs/errorMessage.js +5 -3
- package/dist/cjs/item-viewer.js +5 -4
- package/dist/cjs/media-viewer.js +21 -17
- package/dist/cjs/navigation.js +5 -4
- package/dist/cjs/styleWrappers.js +1 -0
- package/dist/cjs/v2/header-v2.js +159 -0
- package/dist/cjs/v2/item-viewer-v2.js +322 -0
- package/dist/cjs/v2/list-v2.js +71 -0
- package/dist/cjs/v2/media-viewer-v2.js +114 -0
- package/dist/cjs/viewers/archiveSidebar/archive.js +5 -3
- package/dist/cjs/zoomControls.js +6 -4
- package/dist/es2019/analytics/index.js +2 -5
- package/dist/es2019/analytics/ufoExperiences.js +1 -1
- package/dist/es2019/components/media-viewer.js +13 -1
- package/dist/es2019/errorMessage.js +5 -3
- package/dist/es2019/item-viewer.js +5 -4
- package/dist/es2019/media-viewer.js +8 -6
- package/dist/es2019/navigation.js +5 -4
- package/dist/es2019/styleWrappers.js +1 -0
- package/dist/es2019/v2/header-v2.js +138 -0
- package/dist/es2019/v2/item-viewer-v2.js +269 -0
- package/dist/es2019/v2/list-v2.js +52 -0
- package/dist/es2019/v2/media-viewer-v2.js +95 -0
- package/dist/es2019/viewers/archiveSidebar/archive.js +4 -3
- package/dist/es2019/zoomControls.js +6 -4
- package/dist/esm/analytics/index.js +2 -3
- package/dist/esm/analytics/ufoExperiences.js +1 -1
- package/dist/esm/components/media-viewer.js +13 -1
- package/dist/esm/errorMessage.js +5 -3
- package/dist/esm/item-viewer.js +5 -4
- package/dist/esm/media-viewer.js +21 -17
- package/dist/esm/navigation.js +5 -4
- package/dist/esm/styleWrappers.js +1 -0
- package/dist/esm/v2/header-v2.js +149 -0
- package/dist/esm/v2/item-viewer-v2.js +302 -0
- package/dist/esm/v2/list-v2.js +61 -0
- package/dist/esm/v2/media-viewer-v2.js +104 -0
- package/dist/esm/viewers/archiveSidebar/archive.js +5 -3
- package/dist/esm/zoomControls.js +6 -4
- package/dist/types/analytics/index.d.ts +2 -2
- package/dist/types/v2/header-v2.d.ts +18 -0
- package/dist/types/v2/item-viewer-v2.d.ts +21 -0
- package/dist/types/v2/list-v2.d.ts +22 -0
- package/dist/types/v2/media-viewer-v2.d.ts +14 -0
- package/dist/types-ts4.5/analytics/index.d.ts +2 -2
- package/dist/types-ts4.5/v2/header-v2.d.ts +18 -0
- package/dist/types-ts4.5/v2/item-viewer-v2.d.ts +21 -0
- package/dist/types-ts4.5/v2/list-v2.d.ts +22 -0
- package/dist/types-ts4.5/v2/media-viewer-v2.d.ts +14 -0
- package/package.json +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/media-viewer
|
|
2
2
|
|
|
3
|
+
## 48.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#43014](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43014) [`761551f78ab`](https://bitbucket.org/atlassian/atlassian-frontend/commits/761551f78ab) - Implement useFileState hook on Media Viewer under Version 2
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#43014](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/43014) [`f021d31543e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f021d31543e) - create useFileState hook versions of header and itemviewer, create list-v2, refactor MediaFileStateError to media-client-react
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 48.1.7
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -10,7 +10,7 @@ exports.packageVersion = exports.packageName = void 0;
|
|
|
10
10
|
var _mediaCommon = require("@atlaskit/media-common");
|
|
11
11
|
var componentName = exports.component = exports.componentName = 'mediaViewer';
|
|
12
12
|
var packageName = exports.packageName = "@atlaskit/media-viewer";
|
|
13
|
-
var packageVersion = exports.packageVersion = "48.
|
|
13
|
+
var packageVersion = exports.packageVersion = "48.2.0";
|
|
14
14
|
function getFileAttributes(fileState) {
|
|
15
15
|
if (!fileState) {
|
|
16
16
|
return {
|
|
@@ -41,8 +41,7 @@ function getFileAttributes(fileState) {
|
|
|
41
41
|
|
|
42
42
|
/** This type takes FailureAttributes and redefines `failReason` to be the strong media-viewer type */
|
|
43
43
|
|
|
44
|
-
function fireAnalytics(payload,
|
|
45
|
-
var createAnalyticsEvent = props.createAnalyticsEvent;
|
|
44
|
+
function fireAnalytics(payload, createAnalyticsEvent) {
|
|
46
45
|
if (createAnalyticsEvent) {
|
|
47
46
|
var ev = createAnalyticsEvent(payload);
|
|
48
47
|
ev.fire(_mediaCommon.ANALYTICS_MEDIA_CHANNEL);
|
|
@@ -12,7 +12,7 @@ var _mediaCommon = require("@atlaskit/media-common");
|
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
14
|
var packageName = "@atlaskit/media-viewer";
|
|
15
|
-
var packageVersion = "48.
|
|
15
|
+
var packageVersion = "48.2.0";
|
|
16
16
|
var ufoExperience;
|
|
17
17
|
var getExperience = function getExperience() {
|
|
18
18
|
if (!ufoExperience) {
|
|
@@ -9,9 +9,11 @@ exports.MediaViewer = void 0;
|
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _mediaViewerV = require("../v2/media-viewer-v2");
|
|
12
13
|
var _mediaViewer = require("../media-viewer");
|
|
13
14
|
var _utils = require("../utils");
|
|
14
15
|
var _mediaClient = require("@atlaskit/media-client");
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
19
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -36,6 +38,9 @@ var normaliseItems = function normaliseItems(items, selectedItem, collectionName
|
|
|
36
38
|
selectedItem: selectedItemWithCollectionName
|
|
37
39
|
};
|
|
38
40
|
};
|
|
41
|
+
|
|
42
|
+
// TODO: This component will be removed in https://product-fabric.atlassian.net/browse/CXP-2722
|
|
43
|
+
|
|
39
44
|
var MediaViewer = exports.MediaViewer = function MediaViewer(_ref) {
|
|
40
45
|
var featureFlags = _ref.featureFlags,
|
|
41
46
|
onClose = _ref.onClose,
|
|
@@ -71,7 +76,14 @@ var MediaViewer = exports.MediaViewer = function MediaViewer(_ref) {
|
|
|
71
76
|
parent.postMessage(closingMsg, '*');
|
|
72
77
|
};
|
|
73
78
|
}, []);
|
|
74
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
79
|
+
return (0, _platformFeatureFlags.getBooleanFF)('platform.media-experience.media-viewer-v2_hgsii') ? /*#__PURE__*/_react.default.createElement(_mediaViewerV.MediaViewerV2, {
|
|
80
|
+
selectedItem: normalisedSelectedItem,
|
|
81
|
+
onClose: onClose,
|
|
82
|
+
items: normalisedItems,
|
|
83
|
+
featureFlags: featureFlags,
|
|
84
|
+
extensions: extensions,
|
|
85
|
+
contextId: contextId
|
|
86
|
+
}) : /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
|
|
75
87
|
mediaClient: mediaClient,
|
|
76
88
|
selectedItem: normalisedSelectedItem,
|
|
77
89
|
onClose: onClose,
|
package/dist/cjs/errorMessage.js
CHANGED
|
@@ -70,12 +70,14 @@ var ErrorMessage = exports.ErrorMessage = /*#__PURE__*/function (_React$Componen
|
|
|
70
70
|
error = props.error,
|
|
71
71
|
fileState = props.fileState,
|
|
72
72
|
fileId = props.fileId,
|
|
73
|
-
traceContext = props.traceContext
|
|
73
|
+
traceContext = props.traceContext,
|
|
74
|
+
createAnalyticsEvent = props.createAnalyticsEvent,
|
|
75
|
+
fileStateFlags = props.fileStateFlags;
|
|
74
76
|
if (supressAnalytics !== true) {
|
|
75
77
|
var payload = ErrorMessage.getEventPayload(error, fileId, fileState, traceContext);
|
|
76
|
-
(0, _analytics.fireAnalytics)(payload,
|
|
78
|
+
(0, _analytics.fireAnalytics)(payload, createAnalyticsEvent);
|
|
77
79
|
var rawPayload = _objectSpread(_objectSpread({}, payload === null || payload === void 0 ? void 0 : payload.attributes), {}, {
|
|
78
|
-
fileStateFlags:
|
|
80
|
+
fileStateFlags: fileStateFlags
|
|
79
81
|
});
|
|
80
82
|
if (Object.keys(rawPayload).includes('status')) {
|
|
81
83
|
delete rawPayload['status'];
|
package/dist/cjs/item-viewer.js
CHANGED
|
@@ -131,7 +131,7 @@ var ItemViewerBase = exports.ItemViewerBase = /*#__PURE__*/function (_React$Comp
|
|
|
131
131
|
item.whenSuccessful(function (fileItem) {
|
|
132
132
|
if (isFileStateItem(fileItem)) {
|
|
133
133
|
var fileAttributes = (0, _analytics.getFileAttributes)(fileItem);
|
|
134
|
-
(0, _analytics.fireAnalytics)((0, _loadSucceeded.createLoadSucceededEvent)(fileAttributes, _this.traceContext), _this.props);
|
|
134
|
+
(0, _analytics.fireAnalytics)((0, _loadSucceeded.createLoadSucceededEvent)(fileAttributes, _this.traceContext), _this.props.createAnalyticsEvent);
|
|
135
135
|
(0, _ufoExperiences.succeedMediaFileUfoExperience)({
|
|
136
136
|
fileAttributes: fileAttributes,
|
|
137
137
|
fileStateFlags: _this.fileStateFlags
|
|
@@ -147,7 +147,7 @@ var ItemViewerBase = exports.ItemViewerBase = /*#__PURE__*/function (_React$Comp
|
|
|
147
147
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onExternalImgSuccess", function () {
|
|
148
148
|
(0, _analytics.fireAnalytics)((0, _loadSucceeded.createLoadSucceededEvent)({
|
|
149
149
|
fileId: 'external-image'
|
|
150
|
-
}), _this.props);
|
|
150
|
+
}), _this.props.createAnalyticsEvent);
|
|
151
151
|
(0, _ufoExperiences.succeedMediaFileUfoExperience)({
|
|
152
152
|
fileAttributes: {
|
|
153
153
|
fileId: 'external-image'
|
|
@@ -352,7 +352,8 @@ var ItemViewerBase = exports.ItemViewerBase = /*#__PURE__*/function (_React$Comp
|
|
|
352
352
|
value: function init(props) {
|
|
353
353
|
var _this3 = this;
|
|
354
354
|
var mediaClient = props.mediaClient,
|
|
355
|
-
identifier = props.identifier
|
|
355
|
+
identifier = props.identifier,
|
|
356
|
+
createAnalyticsEvent = props.createAnalyticsEvent;
|
|
356
357
|
if ((0, _mediaClient.isExternalImageIdentifier)(identifier)) {
|
|
357
358
|
// external images do not need to talk to our backend,
|
|
358
359
|
// so therefore no need for media-client subscriptions.
|
|
@@ -363,7 +364,7 @@ var ItemViewerBase = exports.ItemViewerBase = /*#__PURE__*/function (_React$Comp
|
|
|
363
364
|
return;
|
|
364
365
|
}
|
|
365
366
|
var id = identifier.id;
|
|
366
|
-
(0, _analytics.fireAnalytics)((0, _commenced.createCommencedEvent)(id, this.traceContext),
|
|
367
|
+
(0, _analytics.fireAnalytics)((0, _commenced.createCommencedEvent)(id, this.traceContext), createAnalyticsEvent);
|
|
367
368
|
(0, _ufoExperiences.startMediaFileUfoExperience)();
|
|
368
369
|
this.subscription = mediaClient.file.getFileState(id, {
|
|
369
370
|
collectionName: identifier.collectionName
|
package/dist/cjs/media-viewer.js
CHANGED
|
@@ -44,16 +44,20 @@ var MediaViewerComponent = exports.MediaViewerComponent = /*#__PURE__*/function
|
|
|
44
44
|
isSidebarVisible: false
|
|
45
45
|
});
|
|
46
46
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onShortcutClosed", function () {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
var _this$props = _this.props,
|
|
48
|
+
onClose = _this$props.onClose,
|
|
49
|
+
createAnalyticsEvent = _this$props.createAnalyticsEvent;
|
|
50
|
+
(0, _analytics.fireAnalytics)((0, _closed.createClosedEvent)('escKey'), createAnalyticsEvent);
|
|
49
51
|
if (onClose) {
|
|
50
52
|
onClose();
|
|
51
53
|
}
|
|
52
54
|
});
|
|
53
55
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onContentClose", function (_e, analyticsEvent) {
|
|
54
|
-
var
|
|
56
|
+
var _this$props2 = _this.props,
|
|
57
|
+
onClose = _this$props2.onClose,
|
|
58
|
+
createAnalyticsEvent = _this$props2.createAnalyticsEvent;
|
|
55
59
|
if (analyticsEvent && analyticsEvent.payload && analyticsEvent.payload.actionSubject === 'button') {
|
|
56
|
-
(0, _analytics.fireAnalytics)((0, _closed.createClosedEvent)('button'),
|
|
60
|
+
(0, _analytics.fireAnalytics)((0, _closed.createClosedEvent)('button'), createAnalyticsEvent);
|
|
57
61
|
}
|
|
58
62
|
if (onClose) {
|
|
59
63
|
onClose();
|
|
@@ -88,29 +92,29 @@ var MediaViewerComponent = exports.MediaViewerComponent = /*#__PURE__*/function
|
|
|
88
92
|
(0, _createClass2.default)(MediaViewerComponent, [{
|
|
89
93
|
key: "UNSAFE_componentWillMount",
|
|
90
94
|
value: function UNSAFE_componentWillMount() {
|
|
91
|
-
(0, _analytics.fireAnalytics)((0, _modal.createModalEvent)(), this.props);
|
|
95
|
+
(0, _analytics.fireAnalytics)((0, _modal.createModalEvent)(), this.props.createAnalyticsEvent);
|
|
92
96
|
(0, _perfMarks.start)('MediaViewer.SessionDuration');
|
|
93
97
|
}
|
|
94
98
|
}, {
|
|
95
99
|
key: "defaultSelectedItem",
|
|
96
100
|
get: function get() {
|
|
97
|
-
var _this$
|
|
98
|
-
items = _this$
|
|
99
|
-
selectedItem = _this$
|
|
101
|
+
var _this$props3 = this.props,
|
|
102
|
+
items = _this$props3.items,
|
|
103
|
+
selectedItem = _this$props3.selectedItem;
|
|
100
104
|
var firstItem = items[0];
|
|
101
105
|
return selectedItem || firstItem;
|
|
102
106
|
}
|
|
103
107
|
}, {
|
|
104
108
|
key: "render",
|
|
105
109
|
value: function render() {
|
|
106
|
-
var _this$
|
|
107
|
-
mediaClient = _this$
|
|
108
|
-
onClose = _this$
|
|
109
|
-
items = _this$
|
|
110
|
-
extensions = _this$
|
|
111
|
-
contextId = _this$
|
|
112
|
-
featureFlags = _this$
|
|
113
|
-
innerRef = _this$
|
|
110
|
+
var _this$props4 = this.props,
|
|
111
|
+
mediaClient = _this$props4.mediaClient,
|
|
112
|
+
onClose = _this$props4.onClose,
|
|
113
|
+
items = _this$props4.items,
|
|
114
|
+
extensions = _this$props4.extensions,
|
|
115
|
+
contextId = _this$props4.contextId,
|
|
116
|
+
featureFlags = _this$props4.featureFlags,
|
|
117
|
+
innerRef = _this$props4.innerRef;
|
|
114
118
|
var isSidebarVisible = this.state.isSidebarVisible;
|
|
115
119
|
var content = /*#__PURE__*/_react.default.createElement("div", {
|
|
116
120
|
ref: innerRef
|
|
@@ -118,7 +122,7 @@ var MediaViewerComponent = exports.MediaViewerComponent = /*#__PURE__*/function
|
|
|
118
122
|
"data-testid": "media-viewer-popup",
|
|
119
123
|
className: _classnames.mediaViewerPopupClass
|
|
120
124
|
}, /*#__PURE__*/_react.default.createElement(_mediaUi.Shortcut, {
|
|
121
|
-
|
|
125
|
+
code: 'Escape',
|
|
122
126
|
handler: this.onShortcutClosed
|
|
123
127
|
}), /*#__PURE__*/_react.default.createElement(_content.Content, {
|
|
124
128
|
isSidebarVisible: isSidebarVisible,
|
package/dist/cjs/navigation.js
CHANGED
|
@@ -41,11 +41,12 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
|
|
|
41
41
|
return function () {
|
|
42
42
|
var _this$props = _this.props,
|
|
43
43
|
onChange = _this$props.onChange,
|
|
44
|
-
items = _this$props.items
|
|
44
|
+
items = _this$props.items,
|
|
45
|
+
createAnalyticsEvent = _this$props.createAnalyticsEvent;
|
|
45
46
|
var selectedIndex = _this.selectedIndex;
|
|
46
47
|
var newItem = direction === 'next' ? items[selectedIndex + 1] : items[selectedIndex - 1];
|
|
47
48
|
if (newItem) {
|
|
48
|
-
(0, _analytics.fireAnalytics)((0, _navigated.createNavigatedEvent)(direction, source, newItem),
|
|
49
|
+
(0, _analytics.fireAnalytics)((0, _navigated.createNavigatedEvent)(direction, source, newItem), createAnalyticsEvent);
|
|
49
50
|
onChange(newItem);
|
|
50
51
|
}
|
|
51
52
|
};
|
|
@@ -82,7 +83,7 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
|
|
|
82
83
|
}, isLeftVisible ? /*#__PURE__*/_react.default.createElement(_styleWrappers.Arrow, {
|
|
83
84
|
className: _mediaUi.hideControlsClassName
|
|
84
85
|
}, /*#__PURE__*/_react.default.createElement(_mediaUi.Shortcut, {
|
|
85
|
-
|
|
86
|
+
code: 'ArrowLeft',
|
|
86
87
|
handler: prev('keyboard')
|
|
87
88
|
}), /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
88
89
|
testId: prevNavButtonId,
|
|
@@ -100,7 +101,7 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
|
|
|
100
101
|
})) : null), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightWrapper, null, isRightVisible ? /*#__PURE__*/_react.default.createElement(_styleWrappers.Arrow, {
|
|
101
102
|
className: _mediaUi.hideControlsClassName
|
|
102
103
|
}, /*#__PURE__*/_react.default.createElement(_mediaUi.Shortcut, {
|
|
103
|
-
|
|
104
|
+
code: 'ArrowRight',
|
|
104
105
|
handler: next('keyboard')
|
|
105
106
|
}), /*#__PURE__*/_react.default.createElement(_standardButton.default, {
|
|
106
107
|
testId: nextNavButtonId,
|
|
@@ -13,6 +13,7 @@ var _reactScrolllock = require("react-scrolllock");
|
|
|
13
13
|
var _useCallbackRef = require("use-callback-ref");
|
|
14
14
|
/** @jsx jsx */
|
|
15
15
|
|
|
16
|
+
// We are keeping this data-testid since JIRA is still using it in their codebase to perform checks. Before removing this, we need to ensure this 'media-viewer-popup' test id is not being used anywhere else in other codebases
|
|
16
17
|
var Blanket = exports.Blanket = function Blanket(_ref) {
|
|
17
18
|
var datatestId = _ref['data-testid'],
|
|
18
19
|
className = _ref.className,
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.HeaderV2 = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _mediaClient = require("@atlaskit/media-client");
|
|
12
|
+
var _mediaUi = require("@atlaskit/media-ui");
|
|
13
|
+
var _codeViewer = require("@atlaskit/media-ui/codeViewer");
|
|
14
|
+
var _reactIntlNext = require("react-intl-next");
|
|
15
|
+
var _domain = require("../domain");
|
|
16
|
+
var _styleWrappers = require("../styleWrappers");
|
|
17
|
+
var _download = require("../download");
|
|
18
|
+
var _mediaClientReact = require("@atlaskit/media-client-react");
|
|
19
|
+
var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
|
|
20
|
+
var _util = require("../viewers/codeViewer/util");
|
|
21
|
+
var _errors = require("../errors");
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
var HeaderV2 = exports.HeaderV2 = function HeaderV2(_ref) {
|
|
25
|
+
var _ref$isArchiveSideBar = _ref.isArchiveSideBarVisible,
|
|
26
|
+
isArchiveSideBarVisible = _ref$isArchiveSideBar === void 0 ? false : _ref$isArchiveSideBar,
|
|
27
|
+
extensions = _ref.extensions,
|
|
28
|
+
isSidebarVisible = _ref.isSidebarVisible,
|
|
29
|
+
onSidebarButtonClick = _ref.onSidebarButtonClick,
|
|
30
|
+
identifier = _ref.identifier,
|
|
31
|
+
onSetArchiveSideBarVisible = _ref.onSetArchiveSideBarVisible;
|
|
32
|
+
// States
|
|
33
|
+
var _useState = (0, _react.useState)(_domain.Outcome.pending()),
|
|
34
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
35
|
+
item = _useState2[0],
|
|
36
|
+
setItem = _useState2[1];
|
|
37
|
+
|
|
38
|
+
// Refs and Hooks
|
|
39
|
+
var mediaClient = (0, _mediaClientReact.useMediaClient)();
|
|
40
|
+
var _ref2 = identifier,
|
|
41
|
+
id = _ref2.id,
|
|
42
|
+
collectionName = _ref2.collectionName,
|
|
43
|
+
occurrenceKey = _ref2.occurrenceKey;
|
|
44
|
+
var _useFileState = (0, _mediaClientReact.useFileState)(id, {
|
|
45
|
+
collectionName: collectionName,
|
|
46
|
+
occurrenceKey: occurrenceKey
|
|
47
|
+
}),
|
|
48
|
+
fileState = _useFileState.fileState;
|
|
49
|
+
var onSetArchiveSideBarVisibleRef = (0, _react.useRef)(onSetArchiveSideBarVisible);
|
|
50
|
+
onSetArchiveSideBarVisibleRef.current = onSetArchiveSideBarVisible;
|
|
51
|
+
|
|
52
|
+
// previous values
|
|
53
|
+
(0, _react.useEffect)(function () {
|
|
54
|
+
if ((0, _mediaClient.isExternalImageIdentifier)(identifier)) {
|
|
55
|
+
var _identifier$name = identifier.name,
|
|
56
|
+
name = _identifier$name === void 0 ? identifier.dataURI : _identifier$name;
|
|
57
|
+
|
|
58
|
+
// Simulate a processing file state to render right metadata
|
|
59
|
+
var _fileState = {
|
|
60
|
+
status: 'processing',
|
|
61
|
+
id: name,
|
|
62
|
+
mediaType: 'image',
|
|
63
|
+
mimeType: 'image/',
|
|
64
|
+
name: name,
|
|
65
|
+
representations: {},
|
|
66
|
+
size: 0
|
|
67
|
+
};
|
|
68
|
+
setItem(_domain.Outcome.successful(_fileState));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!fileState) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (fileState.status !== 'error') {
|
|
75
|
+
var _onSetArchiveSideBarV;
|
|
76
|
+
(_onSetArchiveSideBarV = onSetArchiveSideBarVisibleRef.current) === null || _onSetArchiveSideBarV === void 0 || _onSetArchiveSideBarV.call(onSetArchiveSideBarVisibleRef, !(0, _mediaClient.isErrorFileState)(fileState) && fileState.mediaType === 'archive');
|
|
77
|
+
setItem(_domain.Outcome.successful(fileState));
|
|
78
|
+
} else {
|
|
79
|
+
var error = new _mediaClientReact.MediaFileStateError(fileState.id, fileState.reason, fileState.message, fileState.details);
|
|
80
|
+
setItem(_domain.Outcome.failed(new _errors.MediaViewerError('header-fetch-metadata', error)));
|
|
81
|
+
}
|
|
82
|
+
}, [fileState, identifier]);
|
|
83
|
+
var renderFileTypeText = function renderFileTypeText(item) {
|
|
84
|
+
// render appropriate header if its a code/email item and the feature flag is enabled
|
|
85
|
+
if ((0, _codeViewer.isCodeViewerItem)(item.name, item.mimeType)) {
|
|
86
|
+
// gather language and extension
|
|
87
|
+
// i.e test.py would have a language of 'python' and an extension of 'py'
|
|
88
|
+
var language = (0, _codeViewer.getLanguageType)(item.name, item.mimeType);
|
|
89
|
+
var ext = (0, _codeViewer.getExtension)(item.name);
|
|
90
|
+
|
|
91
|
+
// specific cases for if we want a certain word translated in other languages
|
|
92
|
+
switch (ext) {
|
|
93
|
+
case 'msg':
|
|
94
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.email);
|
|
95
|
+
case 'txt':
|
|
96
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.text);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// no need for translations in other languages
|
|
100
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _util.getFormat)(language || 'unknown', ext));
|
|
101
|
+
}
|
|
102
|
+
var mediaType = item.mediaType;
|
|
103
|
+
var mediaTypeTranslationMap = {
|
|
104
|
+
doc: _mediaUi.messages.document,
|
|
105
|
+
audio: _mediaUi.messages.audio,
|
|
106
|
+
video: _mediaUi.messages.video,
|
|
107
|
+
image: _mediaUi.messages.image,
|
|
108
|
+
archive: _mediaUi.messages.archive,
|
|
109
|
+
unknown: _mediaUi.messages.unknown
|
|
110
|
+
};
|
|
111
|
+
var message = mediaTypeTranslationMap[mediaType || 'unknown'];
|
|
112
|
+
|
|
113
|
+
// Defaulting to unknown again since backend has more mediaTypes than the current supported ones
|
|
114
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, message || _mediaUi.messages.unknown);
|
|
115
|
+
};
|
|
116
|
+
return /*#__PURE__*/_react.default.createElement(_styleWrappers.Header, {
|
|
117
|
+
isArchiveSideBarVisible: isArchiveSideBarVisible,
|
|
118
|
+
className: _mediaUi.hideControlsClassName
|
|
119
|
+
}, /*#__PURE__*/_react.default.createElement(_styleWrappers.LeftHeader, null, item.match({
|
|
120
|
+
successful: function successful(item) {
|
|
121
|
+
return !(0, _mediaClient.isErrorFileState)(item) && /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataIconWrapper, null, /*#__PURE__*/_react.default.createElement(_mimeTypeIcon.MimeTypeIcon, {
|
|
122
|
+
testId: 'media-viewer-file-type-icon',
|
|
123
|
+
mediaType: item.mediaType,
|
|
124
|
+
mimeType: item.mimeType,
|
|
125
|
+
name: item.name
|
|
126
|
+
})), /*#__PURE__*/_react.default.createElement(_styleWrappers.MedatadataTextWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataFileName, {
|
|
127
|
+
"data-testid": "media-viewer-file-name"
|
|
128
|
+
}, item.name || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.unknown)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataSubText, {
|
|
129
|
+
"data-testid": "media-viewer-file-metadata-text"
|
|
130
|
+
}, /*#__PURE__*/_react.default.createElement(_styleWrappers.FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + (0, _mediaUi.toHumanReadableMediaSize)(item.size) : '')));
|
|
131
|
+
},
|
|
132
|
+
pending: function pending() {
|
|
133
|
+
return null;
|
|
134
|
+
},
|
|
135
|
+
failed: function failed() {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
})), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightHeader, null, (extensions === null || extensions === void 0 ? void 0 : extensions.sidebar) && /*#__PURE__*/_react.default.createElement(_mediaUi.MediaButton, {
|
|
139
|
+
isSelected: isSidebarVisible,
|
|
140
|
+
testId: "media-viewer-sidebar-button",
|
|
141
|
+
onClick: onSidebarButtonClick,
|
|
142
|
+
iconBefore: extensions.sidebar.icon
|
|
143
|
+
}), item.match({
|
|
144
|
+
pending: function pending() {
|
|
145
|
+
return _download.DisabledToolbarDownloadButton;
|
|
146
|
+
},
|
|
147
|
+
failed: function failed() {
|
|
148
|
+
return _download.DisabledToolbarDownloadButton;
|
|
149
|
+
},
|
|
150
|
+
successful: function successful(item) {
|
|
151
|
+
return /*#__PURE__*/_react.default.createElement(_download.ToolbarDownloadButton, {
|
|
152
|
+
state: item,
|
|
153
|
+
identifier: identifier,
|
|
154
|
+
mediaClient: mediaClient
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
})));
|
|
158
|
+
};
|
|
159
|
+
var _default = exports.default = (0, _reactIntlNext.injectIntl)(HeaderV2);
|