@atlaskit/media-viewer 48.10.1 → 49.0.1

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 (59) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/analytics/index.js +1 -1
  3. package/dist/cjs/analytics/ufoExperiences.js +1 -1
  4. package/dist/cjs/components/media-viewer.js +4 -13
  5. package/dist/cjs/header.js +133 -222
  6. package/dist/cjs/item-viewer.js +231 -317
  7. package/dist/cjs/list.js +61 -101
  8. package/dist/cjs/media-viewer.js +82 -137
  9. package/dist/es2019/analytics/index.js +1 -1
  10. package/dist/es2019/analytics/ufoExperiences.js +1 -1
  11. package/dist/es2019/components/media-viewer.js +4 -13
  12. package/dist/es2019/header.js +121 -188
  13. package/dist/es2019/item-viewer.js +186 -241
  14. package/dist/es2019/list.js +49 -81
  15. package/dist/es2019/media-viewer.js +73 -125
  16. package/dist/esm/analytics/index.js +1 -1
  17. package/dist/esm/analytics/ufoExperiences.js +1 -1
  18. package/dist/esm/components/media-viewer.js +4 -13
  19. package/dist/esm/header.js +130 -222
  20. package/dist/esm/item-viewer.js +231 -317
  21. package/dist/esm/list.js +58 -101
  22. package/dist/esm/media-viewer.js +80 -138
  23. package/dist/types/components/media-viewer.d.ts +1 -1
  24. package/dist/types/header.d.ts +3 -27
  25. package/dist/types/item-viewer.d.ts +10 -30
  26. package/dist/types/list.d.ts +3 -9
  27. package/dist/types/media-viewer.d.ts +2 -21
  28. package/dist/types/navigation.d.ts +6 -1
  29. package/dist/types/viewers/archiveSidebar/archive.d.ts +1 -1
  30. package/dist/types/viewers/doc/pdfRenderer.d.ts +1 -1
  31. package/dist/types-ts4.5/components/media-viewer.d.ts +1 -1
  32. package/dist/types-ts4.5/header.d.ts +3 -27
  33. package/dist/types-ts4.5/item-viewer.d.ts +10 -30
  34. package/dist/types-ts4.5/list.d.ts +3 -9
  35. package/dist/types-ts4.5/media-viewer.d.ts +2 -21
  36. package/dist/types-ts4.5/navigation.d.ts +6 -1
  37. package/dist/types-ts4.5/viewers/archiveSidebar/archive.d.ts +1 -1
  38. package/dist/types-ts4.5/viewers/doc/pdfRenderer.d.ts +1 -1
  39. package/package.json +3 -9
  40. package/dist/cjs/v2/header-v2.js +0 -161
  41. package/dist/cjs/v2/item-viewer-v2.js +0 -355
  42. package/dist/cjs/v2/list-v2.js +0 -73
  43. package/dist/cjs/v2/media-viewer-v2.js +0 -116
  44. package/dist/es2019/v2/header-v2.js +0 -140
  45. package/dist/es2019/v2/item-viewer-v2.js +0 -293
  46. package/dist/es2019/v2/list-v2.js +0 -54
  47. package/dist/es2019/v2/media-viewer-v2.js +0 -97
  48. package/dist/esm/v2/header-v2.js +0 -151
  49. package/dist/esm/v2/item-viewer-v2.js +0 -333
  50. package/dist/esm/v2/list-v2.js +0 -63
  51. package/dist/esm/v2/media-viewer-v2.js +0 -106
  52. package/dist/types/v2/header-v2.d.ts +0 -18
  53. package/dist/types/v2/item-viewer-v2.d.ts +0 -27
  54. package/dist/types/v2/list-v2.d.ts +0 -22
  55. package/dist/types/v2/media-viewer-v2.d.ts +0 -14
  56. package/dist/types-ts4.5/v2/header-v2.d.ts +0 -18
  57. package/dist/types-ts4.5/v2/item-viewer-v2.d.ts +0 -27
  58. package/dist/types-ts4.5/v2/list-v2.d.ts +0 -22
  59. package/dist/types-ts4.5/v2/media-viewer-v2.d.ts +0 -14
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @atlaskit/media-viewer
2
2
 
3
+ ## 49.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#150125](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150125)
8
+ [`8217cf9a2faac`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8217cf9a2faac) -
9
+ fix withMediaClient usage in Media Viewer and unit tests
10
+
11
+ ## 49.0.0
12
+
13
+ ### Major Changes
14
+
15
+ - [#149704](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/149704)
16
+ [`58dcd069492e5`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/58dcd069492e5) -
17
+ remove mediaviewer v2 feature flag making the default experience the refactored one which may
18
+ result in tests failing where consumers test the internals of media components
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+
3
24
  ## 48.10.1
4
25
 
5
26
  ### Patch Changes
@@ -10,7 +10,7 @@ exports.packageVersion = exports.packageName = void 0;
10
10
  var _analytics = require("@atlaskit/media-common/analytics");
11
11
  var componentName = exports.component = exports.componentName = 'mediaViewer';
12
12
  var packageName = exports.packageName = "@atlaskit/media-viewer";
13
- var packageVersion = exports.packageVersion = "48.10.1";
13
+ var packageVersion = exports.packageVersion = "49.0.1";
14
14
  function getFileAttributes(fileState) {
15
15
  if (!fileState) {
16
16
  return {
@@ -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.10.1";
15
+ var packageVersion = "49.0.1";
16
16
  var ufoExperience;
17
17
  var getExperience = function getExperience() {
18
18
  if (!ufoExperience) {
@@ -9,11 +9,9 @@ exports.MediaViewerWithMediaClient = exports.MediaViewerBase = 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");
13
12
  var _mediaViewer = require("../media-viewer");
14
13
  var _utils = require("../utils");
15
14
  var _mediaClient = require("@atlaskit/media-client");
16
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
15
  var _mediaClientReact = require("@atlaskit/media-client-react");
18
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -45,7 +43,6 @@ var normaliseItems = function normaliseItems(items, selectedItem, collectionName
45
43
  var MediaViewerBase = exports.MediaViewerBase = function MediaViewerBase(_ref) {
46
44
  var featureFlags = _ref.featureFlags,
47
45
  onClose = _ref.onClose,
48
- mediaClient = _ref.mediaClient,
49
46
  selectedItem = _ref.selectedItem,
50
47
  collectionName = _ref.collectionName,
51
48
  items = _ref.items,
@@ -77,15 +74,7 @@ var MediaViewerBase = exports.MediaViewerBase = function MediaViewerBase(_ref) {
77
74
  parent.postMessage(closingMsg, '*');
78
75
  };
79
76
  }, []);
80
- return (0, _platformFeatureFlags.fg)('platform.media-experience.media-viewer-v2_hgsii') ? /*#__PURE__*/_react.default.createElement(_mediaViewerV.MediaViewerV2, {
81
- selectedItem: normalisedSelectedItem,
82
- onClose: onClose,
83
- items: normalisedItems,
84
- featureFlags: featureFlags,
85
- extensions: extensions,
86
- contextId: contextId
87
- }) : /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
88
- mediaClient: mediaClient,
77
+ return /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
89
78
  selectedItem: normalisedSelectedItem,
90
79
  onClose: onClose,
91
80
  items: normalisedItems,
@@ -98,6 +87,8 @@ var MediaViewerBase = exports.MediaViewerBase = function MediaViewerBase(_ref) {
98
87
  // Can't export in a single line. Typescript struggles to recognize the component signature in the error boundary test file ./media-viewer-error-boundary.test.tsx
99
88
  // export const MediaViewerWithMediaClient = withMediaClient(MediaViewerBase)
100
89
  var MediaViewerWithMediaClient = exports.MediaViewerWithMediaClient = function MediaViewerWithMediaClient(props) {
101
- var ViewerComponent = (0, _mediaClientReact.withMediaClient)(MediaViewerBase);
90
+ var ViewerComponent = _react.default.useMemo(function () {
91
+ return (0, _mediaClientReact.withMediaClient)(MediaViewerBase);
92
+ }, []);
102
93
  return /*#__PURE__*/_react.default.createElement(ViewerComponent, props);
103
94
  };
@@ -1,250 +1,161 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = exports.Header = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var _react = _interopRequireDefault(require("react"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
16
11
  var _mediaClient = require("@atlaskit/media-client");
17
- var _deepEqual = _interopRequireDefault(require("deep-equal"));
18
12
  var _mediaUi = require("@atlaskit/media-ui");
19
13
  var _codeViewer = require("@atlaskit/media-ui/codeViewer");
20
14
  var _reactIntlNext = require("react-intl-next");
21
15
  var _domain = require("./domain");
22
16
  var _styleWrappers = require("./styleWrappers");
23
17
  var _download = require("./download");
18
+ var _mediaClientReact = require("@atlaskit/media-client-react");
24
19
  var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
25
20
  var _util = require("./viewers/codeViewer/util");
26
21
  var _errors = require("./errors");
27
- function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
28
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
- var initialState = {
30
- item: _domain.Outcome.pending()
31
- };
32
- var Header = exports.Header = /*#__PURE__*/function (_React$Component) {
33
- (0, _inherits2.default)(Header, _React$Component);
34
- var _super = _createSuper(Header);
35
- function Header() {
36
- var _this;
37
- (0, _classCallCheck2.default)(this, Header);
38
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
39
- args[_key] = arguments[_key];
40
- }
41
- _this = _super.call.apply(_super, [this].concat(args));
42
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", initialState);
43
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDownload", function () {
44
- var item = _this.state.item;
45
- var _this$props = _this.props,
46
- identifier = _this$props.identifier,
47
- mediaClient = _this$props.mediaClient;
48
- return item.match({
49
- pending: function pending() {
50
- return _download.DisabledToolbarDownloadButton;
51
- },
52
- failed: function failed() {
53
- return _download.DisabledToolbarDownloadButton;
54
- },
55
- successful: function successful(item) {
56
- return /*#__PURE__*/_react.default.createElement(_download.ToolbarDownloadButton, {
57
- state: item,
58
- identifier: identifier,
59
- mediaClient: mediaClient
60
- });
61
- }
62
- });
63
- });
64
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSidebarButton", function () {
65
- var _this$props2 = _this.props,
66
- extensions = _this$props2.extensions,
67
- isSidebarVisible = _this$props2.isSidebarVisible,
68
- onSidebarButtonClick = _this$props2.onSidebarButtonClick;
69
- if (extensions && extensions.sidebar) {
70
- return /*#__PURE__*/_react.default.createElement(_mediaUi.MediaButton, {
71
- isSelected: isSidebarVisible,
72
- testId: "media-viewer-sidebar-button",
73
- onClick: onSidebarButtonClick,
74
- iconBefore: extensions.sidebar.icon
75
- });
76
- }
77
- });
78
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSize", function (item) {
79
- if (item.size) {
80
- return _this.renderSeparator() + (0, _mediaUi.toHumanReadableMediaSize)(item.size);
81
- } else {
82
- return '';
83
- }
84
- });
85
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSeparator", function () {
86
- return ' · ';
87
- });
88
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFileTypeText", function (item) {
89
- // render appropriate header if its a code/email item and the feature flag is enabled
90
- if ((0, _codeViewer.isCodeViewerItem)(item.name, item.mimeType)) {
91
- // gather language and extension
92
- // i.e test.py would have a language of 'python' and an extension of 'py'
93
- var language = (0, _codeViewer.getLanguageType)(item.name, item.mimeType);
94
- var ext = (0, _codeViewer.getExtension)(item.name);
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ var Header = exports.Header = function Header(_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];
95
37
 
96
- // specific cases for if we want a certain word translated in other languages
97
- switch (ext) {
98
- case 'msg':
99
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.email);
100
- case 'txt':
101
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.text);
102
- }
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;
103
51
 
104
- // no need for translations in other languages
105
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _util.getFormat)(language || 'unknown', ext));
106
- }
107
- var mediaType = item.mediaType;
108
- var mediaTypeTranslationMap = {
109
- doc: _mediaUi.messages.document,
110
- audio: _mediaUi.messages.audio,
111
- video: _mediaUi.messages.video,
112
- image: _mediaUi.messages.image,
113
- archive: _mediaUi.messages.archive,
114
- unknown: _mediaUi.messages.unknown
115
- };
116
- var message = mediaTypeTranslationMap[mediaType || 'unknown'];
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;
117
57
 
118
- // Defaulting to unknown again since backend has more mediaTypes than the current supported ones
119
- return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, message || _mediaUi.messages.unknown);
120
- });
121
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getMediaIcon", function (mediaType, mimeType, fileName) {
122
- return /*#__PURE__*/_react.default.createElement(_mimeTypeIcon.MimeTypeIcon, {
123
- testId: 'media-viewer-file-type-icon',
124
- mediaType: mediaType,
125
- mimeType: mimeType,
126
- name: fileName
127
- });
128
- });
129
- return _this;
130
- }
131
- (0, _createClass2.default)(Header, [{
132
- key: "UNSAFE_componentWillUpdate",
133
- value: function UNSAFE_componentWillUpdate(nextProps) {
134
- if (this.needsReset(this.props, nextProps)) {
135
- this.release();
136
- this.init(nextProps);
137
- }
138
- }
139
- }, {
140
- key: "componentDidMount",
141
- value: function componentDidMount() {
142
- this.init(this.props);
143
- }
144
- }, {
145
- key: "componentWillUnmount",
146
- value: function componentWillUnmount() {
147
- this.release();
148
- }
149
- }, {
150
- key: "init",
151
- value: function init(props) {
152
- var _this2 = this;
153
- this.setState(initialState, function () {
154
- var mediaClient = props.mediaClient,
155
- identifier = props.identifier,
156
- onSetArchiveSideBarVisible = props.onSetArchiveSideBarVisible;
157
- if ((0, _mediaClient.isExternalImageIdentifier)(identifier)) {
158
- var _identifier$name = identifier.name,
159
- name = _identifier$name === void 0 ? identifier.dataURI : _identifier$name;
160
- // Simulate a processing file state to render right metadata
161
- var fileState = {
162
- status: 'processing',
163
- id: name,
164
- mediaType: 'image',
165
- mimeType: 'image/',
166
- name: name,
167
- representations: {},
168
- size: 0
169
- };
170
- _this2.setState({
171
- item: _domain.Outcome.successful(fileState)
172
- });
173
- return;
174
- }
175
- var id = identifier.id;
176
- _this2.subscription = mediaClient.file.getFileState(id, {
177
- collectionName: identifier.collectionName
178
- }).subscribe({
179
- next: function next(file) {
180
- onSetArchiveSideBarVisible === null || onSetArchiveSideBarVisible === void 0 || onSetArchiveSideBarVisible(!(0, _mediaClient.isErrorFileState)(file) && file.mediaType === 'archive');
181
- _this2.setState({
182
- item: _domain.Outcome.successful(file)
183
- });
184
- },
185
- error: function error(_error) {
186
- _this2.setState({
187
- item: _domain.Outcome.failed(new _errors.MediaViewerError('header-fetch-metadata', _error))
188
- });
189
- }
190
- });
191
- });
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;
192
70
  }
193
- }, {
194
- key: "render",
195
- value: function render() {
196
- var _this$props$isArchive = this.props.isArchiveSideBarVisible,
197
- isArchiveSideBarVisible = _this$props$isArchive === void 0 ? false : _this$props$isArchive;
198
- return /*#__PURE__*/_react.default.createElement(_styleWrappers.Header, {
199
- isArchiveSideBarVisible: isArchiveSideBarVisible
200
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
201
- ,
202
- className: _mediaUi.hideControlsClassName
203
- }, /*#__PURE__*/_react.default.createElement(_styleWrappers.LeftHeader, null, this.renderMetadata()), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightHeader, null, this.renderSidebarButton(), this.renderDownload()));
71
+ if (!fileState) {
72
+ return;
204
73
  }
205
- }, {
206
- key: "renderMetadata",
207
- value: function renderMetadata() {
208
- var _this3 = this;
209
- var item = this.state.item;
210
- return item.match({
211
- successful: function successful(item) {
212
- return _this3.renderMetadataLayout(item);
213
- },
214
- pending: function pending() {
215
- return null;
216
- },
217
- failed: function failed() {
218
- return null;
219
- }
220
- });
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)));
221
81
  }
222
- }, {
223
- key: "renderMetadataLayout",
224
- value: function renderMetadataLayout(item) {
225
- if (!(0, _mediaClient.isErrorFileState)(item)) {
226
- return /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataIconWrapper, null, this.getMediaIcon(item.mediaType, item.mimeType, item.name)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MedatadataTextWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataFileName, {
227
- "data-testid": "media-viewer-file-name"
228
- }, item.name || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.unknown)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataSubText, {
229
- "data-testid": "media-viewer-file-metadata-text"
230
- }, /*#__PURE__*/_react.default.createElement(_styleWrappers.FormattedMessageWrapper, null, this.renderFileTypeText(item)), this.renderSize(item))));
231
- } else {
232
- return null;
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);
233
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));
234
101
  }
235
- }, {
236
- key: "needsReset",
237
- value: function needsReset(propsA, propsB) {
238
- return !(0, _deepEqual.default)(propsA.identifier, propsB.identifier);
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
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
119
+ ,
120
+ className: _mediaUi.hideControlsClassName
121
+ }, /*#__PURE__*/_react.default.createElement(_styleWrappers.LeftHeader, null, item.match({
122
+ successful: function successful(item) {
123
+ 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, {
124
+ testId: 'media-viewer-file-type-icon',
125
+ mediaType: item.mediaType,
126
+ mimeType: item.mimeType,
127
+ name: item.name
128
+ })), /*#__PURE__*/_react.default.createElement(_styleWrappers.MedatadataTextWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataFileName, {
129
+ "data-testid": "media-viewer-file-name"
130
+ }, item.name || /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _mediaUi.messages.unknown)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataSubText, {
131
+ "data-testid": "media-viewer-file-metadata-text"
132
+ }, /*#__PURE__*/_react.default.createElement(_styleWrappers.FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + (0, _mediaUi.toHumanReadableMediaSize)(item.size) : '')));
133
+ },
134
+ pending: function pending() {
135
+ return null;
136
+ },
137
+ failed: function failed() {
138
+ return null;
239
139
  }
240
- }, {
241
- key: "release",
242
- value: function release() {
243
- if (this.subscription) {
244
- this.subscription.unsubscribe();
245
- }
140
+ })), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightHeader, null, (extensions === null || extensions === void 0 ? void 0 : extensions.sidebar) && /*#__PURE__*/_react.default.createElement(_mediaUi.MediaButton, {
141
+ isSelected: isSidebarVisible,
142
+ testId: "media-viewer-sidebar-button",
143
+ onClick: onSidebarButtonClick,
144
+ iconBefore: extensions.sidebar.icon
145
+ }), item.match({
146
+ pending: function pending() {
147
+ return _download.DisabledToolbarDownloadButton;
148
+ },
149
+ failed: function failed() {
150
+ return _download.DisabledToolbarDownloadButton;
151
+ },
152
+ successful: function successful(item) {
153
+ return /*#__PURE__*/_react.default.createElement(_download.ToolbarDownloadButton, {
154
+ state: item,
155
+ identifier: identifier,
156
+ mediaClient: mediaClient
157
+ });
246
158
  }
247
- }]);
248
- return Header;
249
- }(_react.default.Component);
159
+ })));
160
+ };
250
161
  var _default = exports.default = (0, _reactIntlNext.injectIntl)(Header);