@atlaskit/media-viewer 54.0.0 → 54.1.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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/media-viewer
2
2
 
3
+ ## 54.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`19773530cd51c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/19773530cd51c) -
8
+ Add fallbackMediaNameFetcher support to MediaCard (FileCard) and MediaViewer (header display),
9
+ gated behind the platform_editor_media_name_fallback_viewer_card experiment
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
3
15
  ## 54.0.0
4
16
 
5
17
  ### Major 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 = "53.2.5";
13
+ var packageVersion = exports.packageVersion = "54.0.0";
14
14
  function getFileAttributes(fileState) {
15
15
  if (!fileState) {
16
16
  return {
@@ -13,7 +13,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
13
  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; }
14
14
  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; }
15
15
  var packageName = "@atlaskit/media-viewer";
16
- var packageVersion = "53.2.5";
16
+ var packageVersion = "54.0.0";
17
17
  var ufoExperience;
18
18
  var getExperience = function getExperience() {
19
19
  if (!ufoExperience) {
@@ -48,7 +48,8 @@ var MediaViewerBase = exports.MediaViewerBase = function MediaViewerBase(_ref) {
48
48
  items = _ref.items,
49
49
  extensions = _ref.extensions,
50
50
  contextId = _ref.contextId,
51
- viewerOptions = _ref.viewerOptions;
51
+ viewerOptions = _ref.viewerOptions,
52
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
52
53
  var _useMemo = (0, _react.useMemo)(function () {
53
54
  return normaliseItems(items, selectedItem, collectionName);
54
55
  }, [items, selectedItem, collectionName]),
@@ -82,7 +83,8 @@ var MediaViewerBase = exports.MediaViewerBase = function MediaViewerBase(_ref) {
82
83
  featureFlags: featureFlags,
83
84
  extensions: extensions,
84
85
  contextId: contextId,
85
- viewerOptions: viewerOptions
86
+ viewerOptions: viewerOptions,
87
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
86
88
  });
87
89
  };
88
90
 
@@ -19,6 +19,7 @@ var _mediaClientReact = require("@atlaskit/media-client-react");
19
19
  var _mimeTypeIcon = require("@atlaskit/media-ui/mime-type-icon");
20
20
  var _util = require("./viewers/codeViewer/util");
21
21
  var _errors = require("./errors");
22
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
22
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
23
24
  var Header = exports.Header = function Header(_ref) {
24
25
  var _extensions$headerAct;
@@ -30,12 +31,19 @@ var Header = exports.Header = function Header(_ref) {
30
31
  identifier = _ref.identifier,
31
32
  onClose = _ref.onClose,
32
33
  onSetArchiveSideBarVisible = _ref.onSetArchiveSideBarVisible,
33
- traceContext = _ref.traceContext;
34
+ traceContext = _ref.traceContext,
35
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
34
36
  // States
35
37
  var _useState = (0, _react.useState)(_domain.Outcome.pending()),
36
38
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
39
  item = _useState2[0],
38
40
  setItem = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(),
42
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
43
+ fallbackMediaName = _useState4[0],
44
+ setFallbackMediaName = _useState4[1];
45
+ var fallbackMediaNameFetchAttempted = (0, _react.useRef)(false);
46
+ var lastFetchedFileId = (0, _react.useRef)();
39
47
 
40
48
  // Refs and Hooks
41
49
  var mediaClient = (0, _mediaClientReact.useMediaClient)();
@@ -81,6 +89,23 @@ var Header = exports.Header = function Header(_ref) {
81
89
  setItem(_domain.Outcome.failed(new _errors.MediaViewerError('header-fetch-metadata', (0, _mediaClient.toCommonMediaClientError)(fileState))));
82
90
  }
83
91
  }, [fileState, identifier]);
92
+ (0, _react.useEffect)(function () {
93
+ // Reset fetch state when the file identity changes (e.g. navigating in viewer)
94
+ var currentId = (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error' ? fileState === null || fileState === void 0 ? void 0 : fileState.id : undefined;
95
+ if (currentId && currentId !== lastFetchedFileId.current && (0, _expValEquals.expValEquals)('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
96
+ fallbackMediaNameFetchAttempted.current = false;
97
+ setFallbackMediaName(undefined);
98
+ lastFetchedFileId.current = currentId;
99
+ }
100
+ if (fileState && fileState.status !== 'error' && !fileState.name && fallbackMediaNameFetcher && !fallbackMediaNameFetchAttempted.current && (0, _expValEquals.expValEquals)('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
101
+ fallbackMediaNameFetchAttempted.current = true;
102
+ fallbackMediaNameFetcher(fileState.id).then(function (name) {
103
+ setFallbackMediaName(name);
104
+ }, function () {
105
+ // Silently ignore fetch failures
106
+ });
107
+ }
108
+ }, [fileState, fallbackMediaNameFetcher]);
84
109
  var renderFileTypeText = function renderFileTypeText(item) {
85
110
  // render appropriate header if its a code/email item and the feature flag is enabled
86
111
  if ((0, _codeViewer.isCodeViewerItem)(item.name, item.mimeType)) {
@@ -128,7 +153,7 @@ var Header = exports.Header = function Header(_ref) {
128
153
  name: item.name
129
154
  })), /*#__PURE__*/_react.default.createElement(_styleWrappers.MedatadataTextWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataFileName, {
130
155
  "data-testid": "media-viewer-file-name"
131
- }, item.name || /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _mediaUi.messages.unknown)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataSubText, {
156
+ }, item.name || (0, _expValEquals.expValEquals)('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true) && fallbackMediaName || /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _mediaUi.messages.unknown)), /*#__PURE__*/_react.default.createElement(_styleWrappers.MetadataSubText, {
132
157
  "data-testid": "media-viewer-file-metadata-text"
133
158
  }, /*#__PURE__*/_react.default.createElement(_styleWrappers.FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + (0, _mediaUi.toHumanReadableMediaSize)(item.size) : '')));
134
159
  },
package/dist/cjs/list.js CHANGED
@@ -26,7 +26,8 @@ var List = exports.List = function List(_ref) {
26
26
  isSidebarVisible = _ref.isSidebarVisible,
27
27
  onNavigationChange = _ref.onNavigationChange,
28
28
  items = _ref.items,
29
- viewerOptions = _ref.viewerOptions;
29
+ viewerOptions = _ref.viewerOptions,
30
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
30
31
  var _useState = (0, _react.useState)(defaultSelectedItem),
31
32
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
32
33
  selectedItem = _useState2[0],
@@ -56,7 +57,8 @@ var List = exports.List = function List(_ref) {
56
57
  isArchiveSideBarVisible: isArchiveSideBarVisible,
57
58
  featureFlags: featureFlags,
58
59
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
59
- traceContext: traceContext.current
60
+ traceContext: traceContext.current,
61
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
60
62
  })), /*#__PURE__*/_react.default.createElement(_itemViewer.ItemViewer, {
61
63
  identifier: selectedItem,
62
64
  showControls: showControls,
@@ -32,7 +32,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
32
32
  _onClose = _ref.onClose,
33
33
  selectedItem = _ref.selectedItem,
34
34
  intl = _ref.intl,
35
- viewerOptions = _ref.viewerOptions;
35
+ viewerOptions = _ref.viewerOptions,
36
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
36
37
  var _useState = (0, _react.useState)(false),
37
38
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
38
39
  isSidebarVisible = _useState2[0],
@@ -96,7 +97,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
96
97
  isSidebarVisible: isSidebarVisible,
97
98
  contextId: contextId,
98
99
  featureFlags: featureFlags,
99
- viewerOptions: viewerOptions
100
+ viewerOptions: viewerOptions,
101
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
100
102
  })), renderSidebar()));
101
103
  return intl ? content : /*#__PURE__*/_react.default.createElement(_reactIntl.IntlProvider, {
102
104
  locale: "en"
@@ -1,7 +1,7 @@
1
1
  import { ANALYTICS_MEDIA_CHANNEL, sanitiseAnalyticsPayload } from '@atlaskit/media-common/analytics';
2
2
  const componentName = 'mediaViewer';
3
3
  const packageName = "@atlaskit/media-viewer";
4
- const packageVersion = "53.2.5";
4
+ const packageVersion = "54.0.0";
5
5
  export { packageName, packageVersion, componentName, componentName as component };
6
6
  export function getFileAttributes(fileState) {
7
7
  if (!fileState) {
@@ -3,7 +3,7 @@ import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
3
3
  import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
5
  const packageName = "@atlaskit/media-viewer";
6
- const packageVersion = "53.2.5";
6
+ const packageVersion = "54.0.0";
7
7
  let ufoExperience;
8
8
  const getExperience = () => {
9
9
  if (!ufoExperience) {
@@ -34,7 +34,8 @@ export const MediaViewerBase = ({
34
34
  items,
35
35
  extensions,
36
36
  contextId,
37
- viewerOptions
37
+ viewerOptions,
38
+ fallbackMediaNameFetcher
38
39
  }) => {
39
40
  const {
40
41
  items: normalisedItems,
@@ -68,7 +69,8 @@ export const MediaViewerBase = ({
68
69
  featureFlags: featureFlags,
69
70
  extensions: extensions,
70
71
  contextId: contextId,
71
- viewerOptions: viewerOptions
72
+ viewerOptions: viewerOptions,
73
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
72
74
  });
73
75
  };
74
76
 
@@ -10,6 +10,7 @@ import { useFileState, useMediaClient } from '@atlaskit/media-client-react';
10
10
  import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
11
11
  import { getFormat } from './viewers/codeViewer/util';
12
12
  import { MediaViewerError } from './errors';
13
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
13
14
  export const Header = ({
14
15
  isArchiveSideBarVisible = false,
15
16
  extensions,
@@ -18,11 +19,15 @@ export const Header = ({
18
19
  identifier,
19
20
  onClose,
20
21
  onSetArchiveSideBarVisible,
21
- traceContext
22
+ traceContext,
23
+ fallbackMediaNameFetcher
22
24
  }) => {
23
25
  var _extensions$headerAct;
24
26
  // States
25
27
  const [item, setItem] = useState(Outcome.pending());
28
+ const [fallbackMediaName, setFallbackMediaName] = useState();
29
+ const fallbackMediaNameFetchAttempted = useRef(false);
30
+ const lastFetchedFileId = useRef();
26
31
 
27
32
  // Refs and Hooks
28
33
  const mediaClient = useMediaClient();
@@ -71,6 +76,23 @@ export const Header = ({
71
76
  setItem(Outcome.failed(new MediaViewerError('header-fetch-metadata', toCommonMediaClientError(fileState))));
72
77
  }
73
78
  }, [fileState, identifier]);
79
+ useEffect(() => {
80
+ // Reset fetch state when the file identity changes (e.g. navigating in viewer)
81
+ const currentId = (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error' ? fileState === null || fileState === void 0 ? void 0 : fileState.id : undefined;
82
+ if (currentId && currentId !== lastFetchedFileId.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
83
+ fallbackMediaNameFetchAttempted.current = false;
84
+ setFallbackMediaName(undefined);
85
+ lastFetchedFileId.current = currentId;
86
+ }
87
+ if (fileState && fileState.status !== 'error' && !fileState.name && fallbackMediaNameFetcher && !fallbackMediaNameFetchAttempted.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
88
+ fallbackMediaNameFetchAttempted.current = true;
89
+ fallbackMediaNameFetcher(fileState.id).then(name => {
90
+ setFallbackMediaName(name);
91
+ }, () => {
92
+ // Silently ignore fetch failures
93
+ });
94
+ }
95
+ }, [fileState, fallbackMediaNameFetcher]);
74
96
  const renderFileTypeText = item => {
75
97
  // render appropriate header if its a code/email item and the feature flag is enabled
76
98
  if (isCodeViewerItem(item.name, item.mimeType)) {
@@ -119,7 +141,7 @@ export const Header = ({
119
141
  name: item.name
120
142
  })), /*#__PURE__*/React.createElement(MedatadataTextWrapper, null, /*#__PURE__*/React.createElement(MetadataFileName, {
121
143
  "data-testid": "media-viewer-file-name"
122
- }, item.name || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
144
+ }, item.name || expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true) && fallbackMediaName || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
123
145
  "data-testid": "media-viewer-file-metadata-text"
124
146
  }, /*#__PURE__*/React.createElement(FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + toHumanReadableMediaSize(item.size) : ''))),
125
147
  pending: () => null,
@@ -16,7 +16,8 @@ export const List = ({
16
16
  isSidebarVisible,
17
17
  onNavigationChange,
18
18
  items,
19
- viewerOptions
19
+ viewerOptions,
20
+ fallbackMediaNameFetcher
20
21
  }) => {
21
22
  const [selectedItem, setSelectedItem] = useState(defaultSelectedItem);
22
23
  const [previewCount, setPreviewCount] = useState(0);
@@ -38,7 +39,8 @@ export const List = ({
38
39
  isArchiveSideBarVisible: isArchiveSideBarVisible,
39
40
  featureFlags: featureFlags,
40
41
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
41
- traceContext: traceContext.current
42
+ traceContext: traceContext.current,
43
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
42
44
  })), /*#__PURE__*/React.createElement(ItemViewer, {
43
45
  identifier: selectedItem,
44
46
  showControls: showControls,
@@ -22,7 +22,8 @@ const MediaViewerComponent = ({
22
22
  onClose,
23
23
  selectedItem,
24
24
  intl,
25
- viewerOptions
25
+ viewerOptions,
26
+ fallbackMediaNameFetcher
26
27
  }) => {
27
28
  const [isSidebarVisible, setIsSidebarVisible] = useState(false);
28
29
  const [selectedIdentifier, setSelectedIdentifier] = useState();
@@ -78,7 +79,8 @@ const MediaViewerComponent = ({
78
79
  isSidebarVisible: isSidebarVisible,
79
80
  contextId: contextId,
80
81
  featureFlags: featureFlags,
81
- viewerOptions: viewerOptions
82
+ viewerOptions: viewerOptions,
83
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
82
84
  })), renderSidebar()));
83
85
  return intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
84
86
  locale: "en"
@@ -1,7 +1,7 @@
1
1
  import { ANALYTICS_MEDIA_CHANNEL, sanitiseAnalyticsPayload } from '@atlaskit/media-common/analytics';
2
2
  var componentName = 'mediaViewer';
3
3
  var packageName = "@atlaskit/media-viewer";
4
- var packageVersion = "53.2.5";
4
+ var packageVersion = "54.0.0";
5
5
  export { packageName, packageVersion, componentName, componentName as component };
6
6
  export function getFileAttributes(fileState) {
7
7
  if (!fileState) {
@@ -6,7 +6,7 @@ import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
6
6
  import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
8
  var packageName = "@atlaskit/media-viewer";
9
- var packageVersion = "53.2.5";
9
+ var packageVersion = "54.0.0";
10
10
  var ufoExperience;
11
11
  var getExperience = function getExperience() {
12
12
  if (!ufoExperience) {
@@ -39,7 +39,8 @@ export var MediaViewerBase = function MediaViewerBase(_ref) {
39
39
  items = _ref.items,
40
40
  extensions = _ref.extensions,
41
41
  contextId = _ref.contextId,
42
- viewerOptions = _ref.viewerOptions;
42
+ viewerOptions = _ref.viewerOptions,
43
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
43
44
  var _useMemo = useMemo(function () {
44
45
  return normaliseItems(items, selectedItem, collectionName);
45
46
  }, [items, selectedItem, collectionName]),
@@ -73,7 +74,8 @@ export var MediaViewerBase = function MediaViewerBase(_ref) {
73
74
  featureFlags: featureFlags,
74
75
  extensions: extensions,
75
76
  contextId: contextId,
76
- viewerOptions: viewerOptions
77
+ viewerOptions: viewerOptions,
78
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
77
79
  });
78
80
  };
79
81
 
@@ -11,6 +11,7 @@ import { useFileState, useMediaClient } from '@atlaskit/media-client-react';
11
11
  import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
12
12
  import { getFormat } from './viewers/codeViewer/util';
13
13
  import { MediaViewerError } from './errors';
14
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
14
15
  export var Header = function Header(_ref) {
15
16
  var _extensions$headerAct;
16
17
  var _ref$isArchiveSideBar = _ref.isArchiveSideBarVisible,
@@ -21,12 +22,19 @@ export var Header = function Header(_ref) {
21
22
  identifier = _ref.identifier,
22
23
  onClose = _ref.onClose,
23
24
  onSetArchiveSideBarVisible = _ref.onSetArchiveSideBarVisible,
24
- traceContext = _ref.traceContext;
25
+ traceContext = _ref.traceContext,
26
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
25
27
  // States
26
28
  var _useState = useState(Outcome.pending()),
27
29
  _useState2 = _slicedToArray(_useState, 2),
28
30
  item = _useState2[0],
29
31
  setItem = _useState2[1];
32
+ var _useState3 = useState(),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ fallbackMediaName = _useState4[0],
35
+ setFallbackMediaName = _useState4[1];
36
+ var fallbackMediaNameFetchAttempted = useRef(false);
37
+ var lastFetchedFileId = useRef();
30
38
 
31
39
  // Refs and Hooks
32
40
  var mediaClient = useMediaClient();
@@ -72,6 +80,23 @@ export var Header = function Header(_ref) {
72
80
  setItem(Outcome.failed(new MediaViewerError('header-fetch-metadata', toCommonMediaClientError(fileState))));
73
81
  }
74
82
  }, [fileState, identifier]);
83
+ useEffect(function () {
84
+ // Reset fetch state when the file identity changes (e.g. navigating in viewer)
85
+ var currentId = (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error' ? fileState === null || fileState === void 0 ? void 0 : fileState.id : undefined;
86
+ if (currentId && currentId !== lastFetchedFileId.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
87
+ fallbackMediaNameFetchAttempted.current = false;
88
+ setFallbackMediaName(undefined);
89
+ lastFetchedFileId.current = currentId;
90
+ }
91
+ if (fileState && fileState.status !== 'error' && !fileState.name && fallbackMediaNameFetcher && !fallbackMediaNameFetchAttempted.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
92
+ fallbackMediaNameFetchAttempted.current = true;
93
+ fallbackMediaNameFetcher(fileState.id).then(function (name) {
94
+ setFallbackMediaName(name);
95
+ }, function () {
96
+ // Silently ignore fetch failures
97
+ });
98
+ }
99
+ }, [fileState, fallbackMediaNameFetcher]);
75
100
  var renderFileTypeText = function renderFileTypeText(item) {
76
101
  // render appropriate header if its a code/email item and the feature flag is enabled
77
102
  if (isCodeViewerItem(item.name, item.mimeType)) {
@@ -119,7 +144,7 @@ export var Header = function Header(_ref) {
119
144
  name: item.name
120
145
  })), /*#__PURE__*/React.createElement(MedatadataTextWrapper, null, /*#__PURE__*/React.createElement(MetadataFileName, {
121
146
  "data-testid": "media-viewer-file-name"
122
- }, item.name || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
147
+ }, item.name || expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true) && fallbackMediaName || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
123
148
  "data-testid": "media-viewer-file-metadata-text"
124
149
  }, /*#__PURE__*/React.createElement(FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + toHumanReadableMediaSize(item.size) : '')));
125
150
  },
package/dist/esm/list.js CHANGED
@@ -17,7 +17,8 @@ export var List = function List(_ref) {
17
17
  isSidebarVisible = _ref.isSidebarVisible,
18
18
  onNavigationChange = _ref.onNavigationChange,
19
19
  items = _ref.items,
20
- viewerOptions = _ref.viewerOptions;
20
+ viewerOptions = _ref.viewerOptions,
21
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
21
22
  var _useState = useState(defaultSelectedItem),
22
23
  _useState2 = _slicedToArray(_useState, 2),
23
24
  selectedItem = _useState2[0],
@@ -47,7 +48,8 @@ export var List = function List(_ref) {
47
48
  isArchiveSideBarVisible: isArchiveSideBarVisible,
48
49
  featureFlags: featureFlags,
49
50
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
50
- traceContext: traceContext.current
51
+ traceContext: traceContext.current,
52
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
51
53
  })), /*#__PURE__*/React.createElement(ItemViewer, {
52
54
  identifier: selectedItem,
53
55
  showControls: showControls,
@@ -23,7 +23,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
23
23
  _onClose = _ref.onClose,
24
24
  selectedItem = _ref.selectedItem,
25
25
  intl = _ref.intl,
26
- viewerOptions = _ref.viewerOptions;
26
+ viewerOptions = _ref.viewerOptions,
27
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
27
28
  var _useState = useState(false),
28
29
  _useState2 = _slicedToArray(_useState, 2),
29
30
  isSidebarVisible = _useState2[0],
@@ -87,7 +88,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
87
88
  isSidebarVisible: isSidebarVisible,
88
89
  contextId: contextId,
89
90
  featureFlags: featureFlags,
90
- viewerOptions: viewerOptions
91
+ viewerOptions: viewerOptions,
92
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
91
93
  })), renderSidebar()));
92
94
  return intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
93
95
  locale: "en"
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type MediaViewerProps } from './types';
3
3
  import type { MediaViewerWithMediaClientConfigProps } from './types';
4
- export declare const MediaViewerBase: ({ featureFlags, onClose, selectedItem, collectionName, items, extensions, contextId, viewerOptions, }: MediaViewerProps) => React.JSX.Element;
4
+ export declare const MediaViewerBase: ({ featureFlags, onClose, selectedItem, collectionName, items, extensions, contextId, viewerOptions, fallbackMediaNameFetcher, }: MediaViewerProps) => React.JSX.Element;
5
5
  export declare const MediaViewerWithMediaClient: (props: MediaViewerWithMediaClientConfigProps) => React.JSX.Element;
@@ -37,6 +37,7 @@ export interface MediaViewerProps {
37
37
  readonly extensions?: MediaViewerExtensions;
38
38
  readonly contextId?: string;
39
39
  readonly viewerOptions?: ViewerOptionsProps;
40
+ readonly fallbackMediaNameFetcher?: (id: string) => Promise<string>;
40
41
  }
41
42
  export type MediaMessage = {
42
43
  source: 'media';
@@ -13,7 +13,8 @@ export type Props = {
13
13
  readonly onSetArchiveSideBarVisible?: (isVisible: boolean) => void;
14
14
  readonly isArchiveSideBarVisible?: boolean;
15
15
  traceContext: MediaTraceContext;
16
+ readonly fallbackMediaNameFetcher?: (id: string) => Promise<string>;
16
17
  };
17
- export declare const Header: ({ isArchiveSideBarVisible, extensions, isSidebarVisible, onSidebarButtonClick, identifier, onClose, onSetArchiveSideBarVisible, traceContext, }: Props & WrappedComponentProps) => React.JSX.Element;
18
+ export declare const Header: ({ isArchiveSideBarVisible, extensions, isSidebarVisible, onSidebarButtonClick, identifier, onClose, onSetArchiveSideBarVisible, traceContext, fallbackMediaNameFetcher, }: Props & WrappedComponentProps) => React.JSX.Element;
18
19
  declare const _default: React.FC<Props>;
19
20
  export default _default;
@@ -15,10 +15,11 @@ export type Props = Readonly<{
15
15
  contextId?: string;
16
16
  featureFlags?: MediaFeatureFlags;
17
17
  viewerOptions?: ViewerOptionsProps;
18
+ fallbackMediaNameFetcher?: (id: string) => Promise<string>;
18
19
  } & WithShowControlMethodProp>;
19
20
  export type State = {
20
21
  selectedItem: Identifier;
21
22
  previewCount: number;
22
23
  isArchiveSideBarVisible: boolean;
23
24
  };
24
- export declare const List: ({ defaultSelectedItem, onClose, showControls, extensions, onSidebarButtonClick, contextId, featureFlags, isSidebarVisible, onNavigationChange, items, viewerOptions, }: Props) => React.JSX.Element;
25
+ export declare const List: ({ defaultSelectedItem, onClose, showControls, extensions, onSidebarButtonClick, contextId, featureFlags, isSidebarVisible, onNavigationChange, items, viewerOptions, fallbackMediaNameFetcher, }: Props) => React.JSX.Element;
@@ -12,5 +12,6 @@ export type Props = {
12
12
  contextId?: string;
13
13
  innerRef?: React.Ref<HTMLDivElement>;
14
14
  viewerOptions?: ViewerOptionsProps;
15
+ fallbackMediaNameFetcher?: (id: string) => Promise<string>;
15
16
  };
16
17
  export declare const MediaViewer: React.ComponentType<Props>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-viewer",
3
- "version": "54.0.0",
3
+ "version": "54.1.0",
4
4
  "description": "MediaViewer is Atlassian's powerful solution for viewing files on the web. It's both powerful and extendable yet easy-to-integrate",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@atlaskit/analytics-next": "^12.0.0",
34
- "@atlaskit/button": "^24.0.0",
34
+ "@atlaskit/button": "^24.1.0",
35
35
  "@atlaskit/code": "^18.0.0",
36
36
  "@atlaskit/css": "^1.0.0",
37
37
  "@atlaskit/form": "^16.0.0",
@@ -44,7 +44,7 @@
44
44
  "@atlaskit/media-common": "^14.0.0",
45
45
  "@atlaskit/media-document-viewer": "^1.0.0",
46
46
  "@atlaskit/media-svg": "^3.0.0",
47
- "@atlaskit/media-ui": "^30.0.0",
47
+ "@atlaskit/media-ui": "^30.1.0",
48
48
  "@atlaskit/platform-feature-flags": "^2.0.0",
49
49
  "@atlaskit/portal": "^6.0.0",
50
50
  "@atlaskit/primitives": "^20.0.0",
@@ -52,6 +52,7 @@
52
52
  "@atlaskit/spinner": "^20.0.0",
53
53
  "@atlaskit/textfield": "^9.0.0",
54
54
  "@atlaskit/theme": "^26.0.0",
55
+ "@atlaskit/tmp-editor-statsig": "^108.3.0",
55
56
  "@atlaskit/tokens": "^14.0.0",
56
57
  "@atlaskit/tooltip": "^23.0.0",
57
58
  "@atlaskit/ufo": "^1.0.0",