@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 +12 -0
- package/dist/cjs/analytics/index.js +1 -1
- package/dist/cjs/analytics/ufoExperiences.js +1 -1
- package/dist/cjs/components/media-viewer.js +4 -2
- package/dist/cjs/header.js +27 -2
- package/dist/cjs/list.js +4 -2
- package/dist/cjs/media-viewer.js +4 -2
- package/dist/es2019/analytics/index.js +1 -1
- package/dist/es2019/analytics/ufoExperiences.js +1 -1
- package/dist/es2019/components/media-viewer.js +4 -2
- package/dist/es2019/header.js +24 -2
- package/dist/es2019/list.js +4 -2
- package/dist/es2019/media-viewer.js +4 -2
- package/dist/esm/analytics/index.js +1 -1
- package/dist/esm/analytics/ufoExperiences.js +1 -1
- package/dist/esm/components/media-viewer.js +4 -2
- package/dist/esm/header.js +27 -2
- package/dist/esm/list.js +4 -2
- package/dist/esm/media-viewer.js +4 -2
- package/dist/types/components/media-viewer.d.ts +1 -1
- package/dist/types/components/types.d.ts +1 -0
- package/dist/types/header.d.ts +2 -1
- package/dist/types/list.d.ts +2 -1
- package/dist/types/media-viewer.d.ts +1 -0
- package/package.json +4 -3
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 = "
|
|
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 = "
|
|
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
|
|
package/dist/cjs/header.js
CHANGED
|
@@ -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,
|
package/dist/cjs/media-viewer.js
CHANGED
|
@@ -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 = "
|
|
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 = "
|
|
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
|
|
package/dist/es2019/header.js
CHANGED
|
@@ -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,
|
package/dist/es2019/list.js
CHANGED
|
@@ -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 = "
|
|
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 = "
|
|
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
|
|
package/dist/esm/header.js
CHANGED
|
@@ -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,
|
package/dist/esm/media-viewer.js
CHANGED
|
@@ -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';
|
package/dist/types/header.d.ts
CHANGED
|
@@ -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;
|
package/dist/types/list.d.ts
CHANGED
|
@@ -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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-viewer",
|
|
3
|
-
"version": "54.
|
|
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.
|
|
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.
|
|
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",
|