@atlaskit/media-card 77.12.3 → 78.0.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 +15 -0
- package/dist/cjs/card/card.js +20 -1039
- package/dist/cjs/card/cardLoader.js +2 -2
- package/dist/cjs/card/cardView.js +255 -417
- package/dist/cjs/card/cardWithMediaClient.js +5 -9
- package/dist/cjs/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
- package/dist/cjs/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
- package/dist/cjs/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
- package/dist/cjs/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
- package/dist/cjs/card/{v2/cardviews → cardviews}/index.js +2 -2
- package/dist/cjs/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
- package/dist/cjs/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
- package/dist/cjs/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
- package/dist/cjs/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
- package/dist/cjs/card/{v2/fileCard.js → fileCard.js} +18 -18
- package/dist/cjs/card/index.js +2 -2
- package/dist/cjs/card/inlinePlayer.js +184 -267
- package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/cjs/card/{v2/svgView → svgView}/svgView.js +9 -9
- package/dist/cjs/inline/loader.js +1 -1
- package/dist/cjs/utils/ufoExperiences.js +1 -1
- package/dist/es2019/card/card.js +20 -1023
- package/dist/es2019/card/cardLoader.js +2 -2
- package/dist/es2019/card/cardView.js +252 -403
- package/dist/es2019/card/cardWithMediaClient.js +6 -10
- package/dist/es2019/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
- package/dist/es2019/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
- package/dist/es2019/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
- package/dist/es2019/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
- package/dist/es2019/card/{v2/cardviews → cardviews}/index.js +2 -2
- package/dist/es2019/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
- package/dist/es2019/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
- package/dist/es2019/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
- package/dist/es2019/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
- package/dist/es2019/card/{v2/fileCard.js → fileCard.js} +18 -18
- package/dist/es2019/card/index.js +1 -1
- package/dist/es2019/card/inlinePlayer.js +127 -208
- package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/es2019/card/{v2/svgView → svgView}/svgView.js +9 -9
- package/dist/es2019/inline/loader.js +1 -1
- package/dist/es2019/utils/ufoExperiences.js +1 -1
- package/dist/esm/card/card.js +21 -1040
- package/dist/esm/card/cardLoader.js +2 -2
- package/dist/esm/card/cardView.js +251 -416
- package/dist/esm/card/cardWithMediaClient.js +6 -10
- package/dist/esm/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
- package/dist/esm/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
- package/dist/esm/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
- package/dist/esm/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
- package/dist/esm/card/{v2/cardviews → cardviews}/index.js +2 -2
- package/dist/esm/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
- package/dist/esm/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
- package/dist/esm/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
- package/dist/esm/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
- package/dist/esm/card/{v2/fileCard.js → fileCard.js} +18 -18
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/card/inlinePlayer.js +185 -269
- package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
- package/dist/esm/card/{v2/svgView → svgView}/svgView.js +9 -9
- package/dist/esm/inline/loader.js +1 -1
- package/dist/esm/utils/ufoExperiences.js +1 -1
- package/dist/types/card/card.d.ts +5 -66
- package/dist/types/card/cardLoader.d.ts +1 -1
- package/dist/types/card/cardView.d.ts +23 -45
- package/dist/types/card/cardWithMediaClient.d.ts +1 -1
- package/dist/types/card/{v2/cardviews → cardviews}/cardViewWrapper.d.ts +3 -3
- package/dist/types/card/{v2/cardviews → cardviews}/errorCardView.d.ts +1 -1
- package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/iconCardView.d.ts +1 -1
- package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/imageCardView.d.ts +1 -1
- package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/index.d.ts +5 -5
- package/dist/types/card/{v2/cardviews → cardviews}/videoCardView.d.ts +1 -1
- package/dist/types/card/{v2/externalImageCard.d.ts → externalImageCard.d.ts} +1 -1
- package/dist/types/card/{v2/fileCard.d.ts → fileCard.d.ts} +2 -2
- package/dist/types/card/index.d.ts +1 -1
- package/dist/types/card/inlinePlayer.d.ts +2 -31
- package/dist/types/card/{v2/svgView → svgView}/errors.d.ts +1 -1
- package/dist/{types-ts4.5/card/v2 → types/card}/svgView/svgView.d.ts +2 -2
- package/dist/types-ts4.5/card/card.d.ts +5 -66
- package/dist/types-ts4.5/card/cardLoader.d.ts +1 -1
- package/dist/types-ts4.5/card/cardView.d.ts +23 -45
- package/dist/types-ts4.5/card/cardWithMediaClient.d.ts +1 -1
- package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/cardViewWrapper.d.ts +3 -3
- package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/errorCardView.d.ts +1 -1
- package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/iconCardView.d.ts +1 -1
- package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/imageCardView.d.ts +1 -1
- package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/index.d.ts +5 -5
- package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/videoCardView.d.ts +1 -1
- package/dist/types-ts4.5/card/{v2/externalImageCard.d.ts → externalImageCard.d.ts} +1 -1
- package/dist/types-ts4.5/card/{v2/fileCard.d.ts → fileCard.d.ts} +2 -2
- package/dist/types-ts4.5/card/index.d.ts +1 -1
- package/dist/types-ts4.5/card/inlinePlayer.d.ts +2 -31
- package/dist/types-ts4.5/card/{v2/svgView → svgView}/errors.d.ts +1 -1
- package/dist/{types/card/v2 → types-ts4.5/card}/svgView/svgView.d.ts +2 -2
- package/package.json +3 -6
- package/dist/cjs/card/cardSwitcher.js +0 -15
- package/dist/cjs/card/v2/cardV2.js +0 -41
- package/dist/cjs/card/v2/cardV2Loader.js +0 -36
- package/dist/cjs/card/v2/cardViewV2.js +0 -298
- package/dist/cjs/card/v2/cardWithMediaClientV2.js +0 -34
- package/dist/cjs/card/v2/inlinePlayerLazyV2.js +0 -35
- package/dist/cjs/card/v2/inlinePlayerV2.js +0 -224
- package/dist/es2019/card/cardSwitcher.js +0 -8
- package/dist/es2019/card/v2/cardV2.js +0 -33
- package/dist/es2019/card/v2/cardV2Loader.js +0 -18
- package/dist/es2019/card/v2/cardViewV2.js +0 -294
- package/dist/es2019/card/v2/cardWithMediaClientV2.js +0 -25
- package/dist/es2019/card/v2/inlinePlayerLazyV2.js +0 -10
- package/dist/es2019/card/v2/inlinePlayerV2.js +0 -166
- package/dist/esm/card/cardSwitcher.js +0 -8
- package/dist/esm/card/v2/cardV2.js +0 -34
- package/dist/esm/card/v2/cardV2Loader.js +0 -24
- package/dist/esm/card/v2/cardViewV2.js +0 -290
- package/dist/esm/card/v2/cardWithMediaClientV2.js +0 -27
- package/dist/esm/card/v2/inlinePlayerLazyV2.js +0 -23
- package/dist/esm/card/v2/inlinePlayerV2.js +0 -214
- package/dist/types/card/cardSwitcher.d.ts +0 -4
- package/dist/types/card/v2/cardV2.d.ts +0 -7
- package/dist/types/card/v2/cardV2Loader.d.ts +0 -4
- package/dist/types/card/v2/cardViewV2.d.ts +0 -59
- package/dist/types/card/v2/cardWithMediaClientV2.d.ts +0 -3
- package/dist/types/card/v2/inlinePlayerLazyV2.d.ts +0 -2
- package/dist/types/card/v2/inlinePlayerV2.d.ts +0 -24
- package/dist/types-ts4.5/card/cardSwitcher.d.ts +0 -4
- package/dist/types-ts4.5/card/v2/cardV2.d.ts +0 -7
- package/dist/types-ts4.5/card/v2/cardV2Loader.d.ts +0 -4
- package/dist/types-ts4.5/card/v2/cardViewV2.d.ts +0 -59
- package/dist/types-ts4.5/card/v2/cardWithMediaClientV2.d.ts +0 -3
- package/dist/types-ts4.5/card/v2/inlinePlayerLazyV2.d.ts +0 -2
- package/dist/types-ts4.5/card/v2/inlinePlayerV2.d.ts +0 -24
- /package/dist/cjs/card/{v2/performance.js → performance.js} +0 -0
- /package/dist/cjs/card/{v2/svgView → svgView}/errors.js +0 -0
- /package/dist/cjs/card/{v2/svgView → svgView}/helpers.js +0 -0
- /package/dist/cjs/card/{v2/svgView → svgView}/index.js +0 -0
- /package/dist/es2019/card/{v2/performance.js → performance.js} +0 -0
- /package/dist/es2019/card/{v2/svgView → svgView}/errors.js +0 -0
- /package/dist/es2019/card/{v2/svgView → svgView}/helpers.js +0 -0
- /package/dist/es2019/card/{v2/svgView → svgView}/index.js +0 -0
- /package/dist/esm/card/{v2/performance.js → performance.js} +0 -0
- /package/dist/esm/card/{v2/svgView → svgView}/errors.js +0 -0
- /package/dist/esm/card/{v2/svgView → svgView}/helpers.js +0 -0
- /package/dist/esm/card/{v2/svgView → svgView}/index.js +0 -0
- /package/dist/types/card/{v2/cardviews → cardviews}/loadingCardView.d.ts +0 -0
- /package/dist/types/card/{v2/cardviews → cardviews}/processingCardView.d.ts +0 -0
- /package/dist/types/card/{v2/performance.d.ts → performance.d.ts} +0 -0
- /package/dist/types/card/{v2/svgView → svgView}/helpers.d.ts +0 -0
- /package/dist/types/card/{v2/svgView → svgView}/index.d.ts +0 -0
- /package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/loadingCardView.d.ts +0 -0
- /package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/processingCardView.d.ts +0 -0
- /package/dist/types-ts4.5/card/{v2/performance.d.ts → performance.d.ts} +0 -0
- /package/dist/types-ts4.5/card/{v2/svgView → svgView}/helpers.d.ts +0 -0
- /package/dist/types-ts4.5/card/{v2/svgView → svgView}/index.d.ts +0 -0
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
8
3
|
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; }
|
|
9
4
|
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) { _defineProperty(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; }
|
|
10
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
5
|
/** @jsx jsx */
|
|
13
6
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
14
7
|
import { jsx } from '@emotion/react';
|
|
15
|
-
import React from 'react';
|
|
8
|
+
import React, { useEffect, useState, useRef } from 'react';
|
|
16
9
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
17
10
|
import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
|
|
18
11
|
import SpinnerIcon from '@atlaskit/spinner';
|
|
19
12
|
import Tooltip from '@atlaskit/tooltip';
|
|
20
13
|
import { messages } from '@atlaskit/media-ui';
|
|
21
|
-
import { defaultImageCardDimensions } from '../utils/cardDimensions';
|
|
22
|
-
import { isValidPercentageUnit } from '../utils/isValidPercentageUnit';
|
|
23
|
-
import { getElementDimension } from '../utils/getElementDimension';
|
|
24
14
|
import { createAndFireMediaCardEvent } from '../utils/analytics';
|
|
25
15
|
import { attachDetailsToActions } from './actions';
|
|
26
|
-
import { calcBreakpointSize } from './ui/styles';
|
|
27
16
|
import { ImageRenderer } from './ui/imageRenderer/imageRenderer';
|
|
28
17
|
import { TitleBox } from './ui/titleBox/titleBox';
|
|
29
18
|
import { FailedTitleBox } from './ui/titleBox/failedTitleBox';
|
|
@@ -35,416 +24,262 @@ import { ActionsBar } from './ui/actionsBar/actionsBar';
|
|
|
35
24
|
import { IconWrapper } from './ui/iconWrapper/iconWrapper';
|
|
36
25
|
import { PreviewUnavailable, CreatingPreview, FailedToUpload, PreviewCurrentlyUnavailable, FailedToLoad } from './ui/iconMessage';
|
|
37
26
|
import { isUploadError, isRateLimitedError, isPollingError } from '../errors';
|
|
38
|
-
import {
|
|
27
|
+
import { Wrapper, ImageContainer } from './ui/wrapper';
|
|
39
28
|
import { fileCardImageViewSelector } from './classnames';
|
|
29
|
+
import { useBreakpoint } from './useBreakpoint';
|
|
40
30
|
import OpenMediaViewerButton from './ui/openMediaViewerButton/openMediaViewerButton';
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
export var CardViewBase = function CardViewBase(_ref) {
|
|
32
|
+
var innerRef = _ref.innerRef,
|
|
33
|
+
onImageLoad = _ref.onImageLoad,
|
|
34
|
+
onImageError = _ref.onImageError,
|
|
35
|
+
dimensions = _ref.dimensions,
|
|
36
|
+
onClick = _ref.onClick,
|
|
37
|
+
onMouseEnter = _ref.onMouseEnter,
|
|
38
|
+
testId = _ref.testId,
|
|
39
|
+
metadata = _ref.metadata,
|
|
40
|
+
status = _ref.status,
|
|
41
|
+
selected = _ref.selected,
|
|
42
|
+
selectable = _ref.selectable,
|
|
43
|
+
cardPreview = _ref.cardPreview,
|
|
44
|
+
mediaCardCursor = _ref.mediaCardCursor,
|
|
45
|
+
shouldHideTooltip = _ref.shouldHideTooltip,
|
|
46
|
+
progress = _ref.progress,
|
|
47
|
+
alt = _ref.alt,
|
|
48
|
+
resizeMode = _ref.resizeMode,
|
|
49
|
+
onDisplayImage = _ref.onDisplayImage,
|
|
50
|
+
nativeLazyLoad = _ref.nativeLazyLoad,
|
|
51
|
+
forceSyncDisplay = _ref.forceSyncDisplay,
|
|
52
|
+
actions = _ref.actions,
|
|
53
|
+
disableOverlay = _ref.disableOverlay,
|
|
54
|
+
titleBoxBgColor = _ref.titleBoxBgColor,
|
|
55
|
+
titleBoxIcon = _ref.titleBoxIcon,
|
|
56
|
+
error = _ref.error,
|
|
57
|
+
disableAnimation = _ref.disableAnimation,
|
|
58
|
+
_ref$openMediaViewerB = _ref.openMediaViewerButtonRef,
|
|
59
|
+
openMediaViewerButtonRef = _ref$openMediaViewerB === void 0 ? null : _ref$openMediaViewerB,
|
|
60
|
+
shouldOpenMediaViewer = _ref.shouldOpenMediaViewer,
|
|
61
|
+
overriddenCreationDate = _ref.overriddenCreationDate;
|
|
62
|
+
var _useState = useState(false),
|
|
63
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
64
|
+
didImageRender = _useState2[0],
|
|
65
|
+
setDidImageRender = _useState2[1];
|
|
66
|
+
var divRef = useRef(null);
|
|
67
|
+
var prevCardPreviewRef = useRef();
|
|
68
|
+
var breakpoint = useBreakpoint(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
|
|
69
|
+
useEffect(function () {
|
|
70
|
+
innerRef && !!divRef.current && innerRef(divRef.current);
|
|
71
|
+
}, [innerRef]);
|
|
72
|
+
useEffect(function () {
|
|
73
|
+
// We should only switch didImageRender to false when cardPreview goes undefined, not when it is changed. as this method could be triggered after onImageLoad callback, falling on a race condition
|
|
74
|
+
if (prevCardPreviewRef.current && !cardPreview) {
|
|
75
|
+
setDidImageRender(false);
|
|
53
76
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
_defineProperty(_assertThisInitialized(_this), "onImageLoad", function (prevCardPreview) {
|
|
60
|
-
var _this$props = _this.props,
|
|
61
|
-
onImageLoad = _this$props.onImageLoad,
|
|
62
|
-
cardPreview = _this$props.cardPreview;
|
|
63
|
-
if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
// We render the icon & icon message always, even if there is cardPreview available.
|
|
67
|
-
// If the image fails to load/render, the icon will remain, i.e. the user won't see a change until
|
|
68
|
-
// the root card decides to chage status to error.
|
|
69
|
-
// If the image renders successfully, we switch this variable to hide the icon & icon message
|
|
70
|
-
// behind the thumbnail in case the image has transparency.
|
|
71
|
-
// It is less likely that root component replaces a suceeded cardPreview for a failed one
|
|
72
|
-
// than the opposite case. Therefore we prefer to hide the icon instead show when the image fails,
|
|
73
|
-
// for a smoother transition
|
|
74
|
-
_this.setState({
|
|
75
|
-
didImageRender: true
|
|
76
|
-
});
|
|
77
|
-
onImageLoad && onImageLoad(cardPreview);
|
|
78
|
-
});
|
|
79
|
-
_defineProperty(_assertThisInitialized(_this), "onImageError", function (cardPreview) {
|
|
80
|
-
var onImageError = _this.props.onImageError;
|
|
81
|
-
_this.setState({
|
|
82
|
-
didImageRender: false
|
|
83
|
-
});
|
|
84
|
-
onImageError && onImageError(cardPreview);
|
|
85
|
-
});
|
|
86
|
-
// If the dimensions.width is a percentage, we need to transform it
|
|
87
|
-
// into a pixel value in order to get the right breakpoints applied.
|
|
88
|
-
_defineProperty(_assertThisInitialized(_this), "saveElementWidth", function () {
|
|
89
|
-
var dimensions = _this.props.dimensions;
|
|
90
|
-
if (!dimensions) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
var width = dimensions.width;
|
|
94
|
-
if (width && isValidPercentageUnit(width) && !!_this.divRef.current) {
|
|
95
|
-
var elementWidth = getElementDimension(_this.divRef.current, 'width');
|
|
96
|
-
_this.setState({
|
|
97
|
-
elementWidth: elementWidth
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
_defineProperty(_assertThisInitialized(_this), "getRenderConfigByStatus", function () {
|
|
102
|
-
var _this$props2 = _this.props,
|
|
103
|
-
cardPreview = _this$props2.cardPreview,
|
|
104
|
-
status = _this$props2.status,
|
|
105
|
-
metadata = _this$props2.metadata,
|
|
106
|
-
disableOverlay = _this$props2.disableOverlay,
|
|
107
|
-
error = _this$props2.error,
|
|
108
|
-
selectable = _this$props2.selectable,
|
|
109
|
-
disableAnimation = _this$props2.disableAnimation;
|
|
110
|
-
var _ref = metadata || {},
|
|
111
|
-
name = _ref.name,
|
|
112
|
-
mediaType = _ref.mediaType;
|
|
113
|
-
var didImageRender = _this.state.didImageRender;
|
|
114
|
-
var isZeroSize = !!(metadata && metadata.size === 0);
|
|
115
|
-
var defaultConfig = {
|
|
116
|
-
renderTypeIcon: !didImageRender,
|
|
117
|
-
renderImageRenderer: !!cardPreview,
|
|
118
|
-
renderPlayButton: !!cardPreview && mediaType === 'video',
|
|
119
|
-
renderBlanket: !disableOverlay,
|
|
120
|
-
renderTitleBox: !disableOverlay && !!name,
|
|
121
|
-
renderTickBox: !disableOverlay && !!selectable
|
|
122
|
-
};
|
|
123
|
-
switch (status) {
|
|
124
|
-
case 'uploading':
|
|
125
|
-
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
126
|
-
renderBlanket: !disableOverlay || mediaType !== 'video',
|
|
127
|
-
isFixedBlanket: true,
|
|
128
|
-
renderProgressBar: true
|
|
129
|
-
});
|
|
130
|
-
case 'processing':
|
|
131
|
-
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
132
|
-
iconMessage: !didImageRender && !isZeroSize ? jsx(CreatingPreview, {
|
|
133
|
-
disableAnimation: disableAnimation
|
|
134
|
-
}) : undefined
|
|
135
|
-
});
|
|
136
|
-
case 'complete':
|
|
137
|
-
return defaultConfig;
|
|
138
|
-
case 'error':
|
|
139
|
-
case 'failed-processing':
|
|
140
|
-
var baseErrorConfig = _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
141
|
-
renderTypeIcon: true,
|
|
142
|
-
renderImageRenderer: false,
|
|
143
|
-
renderTitleBox: false,
|
|
144
|
-
renderPlayButton: false
|
|
145
|
-
});
|
|
146
|
-
var iconMessage;
|
|
147
|
-
var customTitleMessage;
|
|
148
|
-
var _ref2 = error || {},
|
|
149
|
-
secondaryError = _ref2.secondaryError;
|
|
150
|
-
if (isRateLimitedError(secondaryError) || isPollingError(secondaryError)) {
|
|
151
|
-
iconMessage = jsx(PreviewCurrentlyUnavailable, null);
|
|
152
|
-
} else if (isUploadError(error)) {
|
|
153
|
-
iconMessage = jsx(FailedToUpload, null);
|
|
154
|
-
customTitleMessage = messages.failed_to_upload;
|
|
155
|
-
} else if (!metadata) {
|
|
156
|
-
iconMessage = jsx(FailedToLoad, null);
|
|
157
|
-
} else {
|
|
158
|
-
iconMessage = jsx(PreviewUnavailable, null);
|
|
159
|
-
}
|
|
160
|
-
if (!disableOverlay) {
|
|
161
|
-
var renderFailedTitleBox = !name || !!customTitleMessage;
|
|
162
|
-
return _objectSpread(_objectSpread({}, baseErrorConfig), {}, {
|
|
163
|
-
renderTitleBox: !!name && !customTitleMessage,
|
|
164
|
-
renderFailedTitleBox: renderFailedTitleBox,
|
|
165
|
-
iconMessage: !renderFailedTitleBox ? iconMessage : undefined,
|
|
166
|
-
customTitleMessage: customTitleMessage
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return _objectSpread(_objectSpread({}, baseErrorConfig), {}, {
|
|
170
|
-
iconMessage: iconMessage
|
|
171
|
-
});
|
|
172
|
-
case 'loading-preview':
|
|
173
|
-
case 'loading':
|
|
174
|
-
default:
|
|
175
|
-
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
176
|
-
renderPlayButton: false,
|
|
177
|
-
renderTypeIcon: false,
|
|
178
|
-
renderSpinner: !didImageRender
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
_defineProperty(_assertThisInitialized(_this), "renderContents", function () {
|
|
183
|
-
var _this$getRenderConfig = _this.getRenderConfigByStatus(),
|
|
184
|
-
renderTypeIcon = _this$getRenderConfig.renderTypeIcon,
|
|
185
|
-
iconMessage = _this$getRenderConfig.iconMessage,
|
|
186
|
-
renderImageRenderer = _this$getRenderConfig.renderImageRenderer,
|
|
187
|
-
renderSpinner = _this$getRenderConfig.renderSpinner,
|
|
188
|
-
renderPlayButton = _this$getRenderConfig.renderPlayButton,
|
|
189
|
-
renderBlanket = _this$getRenderConfig.renderBlanket,
|
|
190
|
-
renderProgressBar = _this$getRenderConfig.renderProgressBar,
|
|
191
|
-
renderTitleBox = _this$getRenderConfig.renderTitleBox,
|
|
192
|
-
renderFailedTitleBox = _this$getRenderConfig.renderFailedTitleBox,
|
|
193
|
-
renderTickBox = _this$getRenderConfig.renderTickBox,
|
|
194
|
-
isFixedBlanket = _this$getRenderConfig.isFixedBlanket,
|
|
195
|
-
customTitleMessage = _this$getRenderConfig.customTitleMessage;
|
|
196
|
-
var _this$props3 = _this.props,
|
|
197
|
-
progress = _this$props3.progress,
|
|
198
|
-
selected = _this$props3.selected,
|
|
199
|
-
status = _this$props3.status,
|
|
200
|
-
metadata = _this$props3.metadata;
|
|
201
|
-
var _ref3 = metadata || {},
|
|
202
|
-
name = _ref3.name;
|
|
203
|
-
var hasTitleBox = !!renderTitleBox || !!renderFailedTitleBox;
|
|
204
|
-
return jsx(React.Fragment, null, jsx(ImageContainer, {
|
|
205
|
-
testId: fileCardImageViewSelector,
|
|
206
|
-
mediaName: name,
|
|
207
|
-
status: status,
|
|
208
|
-
progress: progress,
|
|
209
|
-
selected: selected ? true : undefined
|
|
210
|
-
}, renderTypeIcon && _this.renderMediaTypeIcon(hasTitleBox, iconMessage), renderSpinner && _this.renderSpinner(hasTitleBox), renderImageRenderer && _this.renderImageRenderer(), renderPlayButton && _this.renderPlayButton(hasTitleBox), renderBlanket && _this.renderBlanket(!!isFixedBlanket), renderTitleBox && _this.renderTitleBox(), renderFailedTitleBox && _this.renderFailedTitleBox(customTitleMessage), renderProgressBar && _this.renderProgressBar(!hasTitleBox), renderTickBox && _this.renderTickBox()), _this.renderActionsBar());
|
|
211
|
-
});
|
|
212
|
-
return _this;
|
|
213
|
-
}
|
|
214
|
-
_createClass(CardViewBase, [{
|
|
215
|
-
key: "componentDidMount",
|
|
216
|
-
value: function componentDidMount() {
|
|
217
|
-
this.saveElementWidth();
|
|
218
|
-
var innerRef = this.props.innerRef;
|
|
219
|
-
!!innerRef && !!this.divRef.current && innerRef(this.divRef.current);
|
|
220
|
-
}
|
|
221
|
-
}, {
|
|
222
|
-
key: "componentDidUpdate",
|
|
223
|
-
value: function componentDidUpdate(_ref4) {
|
|
224
|
-
var prevCardPreview = _ref4.cardPreview;
|
|
225
|
-
var cardPreview = this.props.cardPreview;
|
|
226
|
-
// We should only switch didImageRender to false
|
|
227
|
-
// when cardPreview goes undefined, not when it is updated.
|
|
228
|
-
// as this method could be triggered after onImageLoad callback,
|
|
229
|
-
// falling on a race condition
|
|
230
|
-
!!prevCardPreview && !cardPreview && this.setState({
|
|
231
|
-
didImageRender: false
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}, {
|
|
235
|
-
key: "breakpoint",
|
|
236
|
-
get: function get() {
|
|
237
|
-
var width = this.state.elementWidth || (this.props.dimensions ? this.props.dimensions.width : '') || defaultImageCardDimensions.width;
|
|
238
|
-
return calcBreakpointSize(parseInt("".concat(width), 10));
|
|
239
|
-
}
|
|
240
|
-
}, {
|
|
241
|
-
key: "renderSpinner",
|
|
242
|
-
value: function renderSpinner(hasTitleBox) {
|
|
243
|
-
return jsx(IconWrapper, {
|
|
244
|
-
breakpoint: this.breakpoint,
|
|
245
|
-
hasTitleBox: hasTitleBox
|
|
246
|
-
}, jsx(SpinnerIcon, {
|
|
247
|
-
testId: 'media-card-loading',
|
|
248
|
-
interactionName: 'media-card-loading'
|
|
249
|
-
}));
|
|
250
|
-
}
|
|
251
|
-
}, {
|
|
252
|
-
key: "shouldRenderPlayButton",
|
|
253
|
-
value: function shouldRenderPlayButton() {
|
|
254
|
-
var _this$props4 = this.props,
|
|
255
|
-
metadata = _this$props4.metadata,
|
|
256
|
-
cardPreview = _this$props4.cardPreview;
|
|
257
|
-
var _ref5 = metadata || {},
|
|
258
|
-
mediaType = _ref5.mediaType;
|
|
259
|
-
if (mediaType !== 'video' || !cardPreview) {
|
|
260
|
-
return false;
|
|
261
|
-
}
|
|
262
|
-
return true;
|
|
263
|
-
}
|
|
264
|
-
}, {
|
|
265
|
-
key: "renderPlayButton",
|
|
266
|
-
value: function renderPlayButton(hasTitleBox) {
|
|
267
|
-
return jsx(IconWrapper, {
|
|
268
|
-
breakpoint: this.breakpoint,
|
|
269
|
-
hasTitleBox: hasTitleBox
|
|
270
|
-
}, jsx(PlayButton, null));
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
//This Blanket will provide a shadow backround for uploading status by
|
|
274
|
-
//setting isFixed.
|
|
275
|
-
}, {
|
|
276
|
-
key: "renderBlanket",
|
|
277
|
-
value: function renderBlanket(isFixed) {
|
|
278
|
-
return jsx(Blanket, {
|
|
279
|
-
isFixed: isFixed
|
|
280
|
-
});
|
|
77
|
+
prevCardPreviewRef.current = cardPreview;
|
|
78
|
+
}, [cardPreview]);
|
|
79
|
+
var handleOnImageLoad = function handleOnImageLoad(prevCardPreview) {
|
|
80
|
+
if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
|
|
81
|
+
return;
|
|
281
82
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return
|
|
294
|
-
name: name,
|
|
295
|
-
createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
|
|
296
|
-
breakpoint: this.breakpoint,
|
|
297
|
-
titleBoxIcon: titleBoxIcon,
|
|
298
|
-
titleBoxBgColor: titleBoxBgColor
|
|
299
|
-
});
|
|
83
|
+
/*
|
|
84
|
+
We render the icon & icon message always, even if there is cardPreview available.
|
|
85
|
+
If the image fails to load/render, the icon will remain, i.e. the user won't see a change until the root card decides to chage status to error.
|
|
86
|
+
If the image renders successfully, we switch this variable to hide the icon & icon message behind the thumbnail in case the image has transparency.
|
|
87
|
+
It is less likely that root component replaces a suceeded cardPreview for a failed one than the opposite case. Therefore we prefer to hide the icon instead show when the image fails, for a smoother transition
|
|
88
|
+
*/
|
|
89
|
+
setDidImageRender(true);
|
|
90
|
+
onImageLoad === null || onImageLoad === void 0 || onImageLoad(cardPreview);
|
|
91
|
+
};
|
|
92
|
+
var handleOnImageError = function handleOnImageError(prevCardPreview) {
|
|
93
|
+
if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
|
|
94
|
+
return;
|
|
300
95
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
96
|
+
setDidImageRender(false);
|
|
97
|
+
onImageError === null || onImageError === void 0 || onImageError(cardPreview);
|
|
98
|
+
};
|
|
99
|
+
var shouldRenderPlayButton = function shouldRenderPlayButton() {
|
|
100
|
+
var _ref2 = metadata || {},
|
|
101
|
+
mediaType = _ref2.mediaType;
|
|
102
|
+
if (mediaType !== 'video' || !cardPreview) {
|
|
103
|
+
return false;
|
|
308
104
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
var actionsWithDetails = metadata && actions ? attachDetailsToActions(actions, metadata) : [];
|
|
382
|
-
if (disableOverlay || !actions || actions.length === 0) {
|
|
383
|
-
return null;
|
|
384
|
-
}
|
|
385
|
-
return jsx(ActionsBar, {
|
|
386
|
-
filename: metadata === null || metadata === void 0 ? void 0 : metadata.name,
|
|
387
|
-
actions: actionsWithDetails
|
|
388
|
-
});
|
|
389
|
-
}
|
|
390
|
-
}, {
|
|
391
|
-
key: "render",
|
|
392
|
-
value: function render() {
|
|
393
|
-
var _this$props8 = this.props,
|
|
394
|
-
dimensions = _this$props8.dimensions,
|
|
395
|
-
appearance = _this$props8.appearance,
|
|
396
|
-
onClick = _this$props8.onClick,
|
|
397
|
-
onMouseEnter = _this$props8.onMouseEnter,
|
|
398
|
-
testId = _this$props8.testId,
|
|
399
|
-
metadata = _this$props8.metadata,
|
|
400
|
-
status = _this$props8.status,
|
|
401
|
-
selected = _this$props8.selected,
|
|
402
|
-
selectable = _this$props8.selectable,
|
|
403
|
-
disableOverlay = _this$props8.disableOverlay,
|
|
404
|
-
cardPreview = _this$props8.cardPreview,
|
|
405
|
-
mediaCardCursor = _this$props8.mediaCardCursor,
|
|
406
|
-
shouldHideTooltip = _this$props8.shouldHideTooltip,
|
|
407
|
-
_this$props8$openMedi = _this$props8.openMediaViewerButtonRef,
|
|
408
|
-
openMediaViewerButtonRef = _this$props8$openMedi === void 0 ? null : _this$props8$openMedi,
|
|
409
|
-
shouldOpenMediaViewer = _this$props8.shouldOpenMediaViewer;
|
|
410
|
-
var _ref9 = metadata || {},
|
|
411
|
-
name = _ref9.name;
|
|
412
|
-
var shouldDisplayBackground = !cardPreview || !disableOverlay || status === 'error' || status === 'failed-processing';
|
|
413
|
-
var isPlayButtonClickable = !!(this.shouldRenderPlayButton() && disableOverlay);
|
|
414
|
-
var isTickBoxSelectable = !disableOverlay && !!selectable && !selected;
|
|
415
|
-
// Disable tooltip for Media Single
|
|
416
|
-
var shouldDisplayTooltip = !disableOverlay && !shouldHideTooltip;
|
|
417
|
-
return jsx(React.Fragment, null, shouldOpenMediaViewer && jsx(OpenMediaViewerButton, {
|
|
418
|
-
fileName: name !== null && name !== void 0 ? name : '',
|
|
419
|
-
innerRef: openMediaViewerButtonRef,
|
|
420
|
-
onClick: onClick
|
|
421
|
-
}), jsx(Wrapper, {
|
|
422
|
-
testId: testId || 'media-card-view',
|
|
423
|
-
dimensions: dimensions,
|
|
424
|
-
appearance: appearance,
|
|
425
|
-
onClick: onClick,
|
|
426
|
-
onMouseEnter: onMouseEnter,
|
|
427
|
-
innerRef: this.divRef,
|
|
428
|
-
breakpoint: this.breakpoint,
|
|
429
|
-
mediaCardCursor: mediaCardCursor,
|
|
430
|
-
disableOverlay: !!disableOverlay,
|
|
431
|
-
selected: !!selected,
|
|
432
|
-
displayBackground: shouldDisplayBackground,
|
|
433
|
-
isPlayButtonClickable: isPlayButtonClickable,
|
|
434
|
-
isTickBoxSelectable: isTickBoxSelectable,
|
|
435
|
-
shouldDisplayTooltip: shouldDisplayTooltip
|
|
436
|
-
}, shouldDisplayTooltip ? jsx(Tooltip, {
|
|
437
|
-
content: name,
|
|
438
|
-
position: "bottom",
|
|
439
|
-
tag: 'div'
|
|
440
|
-
}, this.renderContents()) : this.renderContents()));
|
|
105
|
+
return true;
|
|
106
|
+
};
|
|
107
|
+
var getRenderConfigByStatus = function getRenderConfigByStatus() {
|
|
108
|
+
var _ref3 = metadata || {},
|
|
109
|
+
name = _ref3.name,
|
|
110
|
+
mediaType = _ref3.mediaType;
|
|
111
|
+
var isZeroSize = metadata && metadata.size === 0;
|
|
112
|
+
var defaultConfig = {
|
|
113
|
+
renderTypeIcon: !didImageRender,
|
|
114
|
+
renderImageRenderer: !!cardPreview,
|
|
115
|
+
renderPlayButton: !!cardPreview && mediaType === 'video',
|
|
116
|
+
renderBlanket: !disableOverlay,
|
|
117
|
+
renderTitleBox: !disableOverlay && !!name,
|
|
118
|
+
renderTickBox: !disableOverlay && !!selectable
|
|
119
|
+
};
|
|
120
|
+
switch (status) {
|
|
121
|
+
case 'uploading':
|
|
122
|
+
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
123
|
+
renderBlanket: !disableOverlay || mediaType !== 'video',
|
|
124
|
+
isFixedBlanket: true,
|
|
125
|
+
renderProgressBar: true
|
|
126
|
+
});
|
|
127
|
+
case 'processing':
|
|
128
|
+
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
129
|
+
iconMessage: !didImageRender && !isZeroSize ? jsx(CreatingPreview, {
|
|
130
|
+
disableAnimation: disableAnimation
|
|
131
|
+
}) : undefined
|
|
132
|
+
});
|
|
133
|
+
case 'complete':
|
|
134
|
+
return defaultConfig;
|
|
135
|
+
case 'error':
|
|
136
|
+
case 'failed-processing':
|
|
137
|
+
var baseErrorConfig = _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
138
|
+
renderTypeIcon: true,
|
|
139
|
+
renderImageRenderer: false,
|
|
140
|
+
renderTitleBox: false,
|
|
141
|
+
renderPlayButton: false
|
|
142
|
+
});
|
|
143
|
+
var _iconMessage;
|
|
144
|
+
var _customTitleMessage;
|
|
145
|
+
var _ref4 = error || {},
|
|
146
|
+
secondaryError = _ref4.secondaryError;
|
|
147
|
+
if (isRateLimitedError(secondaryError) || isPollingError(secondaryError)) {
|
|
148
|
+
_iconMessage = jsx(PreviewCurrentlyUnavailable, null);
|
|
149
|
+
} else if (isUploadError(error)) {
|
|
150
|
+
_iconMessage = jsx(FailedToUpload, null);
|
|
151
|
+
_customTitleMessage = messages.failed_to_upload;
|
|
152
|
+
} else if (!metadata) {
|
|
153
|
+
_iconMessage = jsx(FailedToLoad, null);
|
|
154
|
+
} else {
|
|
155
|
+
_iconMessage = jsx(PreviewUnavailable, null);
|
|
156
|
+
}
|
|
157
|
+
if (!disableOverlay) {
|
|
158
|
+
var _renderFailedTitleBox = !name || !!_customTitleMessage;
|
|
159
|
+
return _objectSpread(_objectSpread({}, baseErrorConfig), {}, {
|
|
160
|
+
renderTitleBox: !!name && !_customTitleMessage,
|
|
161
|
+
renderFailedTitleBox: _renderFailedTitleBox,
|
|
162
|
+
iconMessage: !_renderFailedTitleBox ? _iconMessage : undefined,
|
|
163
|
+
customTitleMessage: _customTitleMessage
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return _objectSpread(_objectSpread({}, baseErrorConfig), {}, {
|
|
167
|
+
iconMessage: _iconMessage
|
|
168
|
+
});
|
|
169
|
+
case 'loading-preview':
|
|
170
|
+
case 'loading':
|
|
171
|
+
default:
|
|
172
|
+
return _objectSpread(_objectSpread({}, defaultConfig), {}, {
|
|
173
|
+
renderPlayButton: false,
|
|
174
|
+
renderTypeIcon: false,
|
|
175
|
+
renderSpinner: !didImageRender
|
|
176
|
+
});
|
|
441
177
|
}
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
178
|
+
};
|
|
179
|
+
var _getRenderConfigBySta = getRenderConfigByStatus(),
|
|
180
|
+
renderTypeIcon = _getRenderConfigBySta.renderTypeIcon,
|
|
181
|
+
iconMessage = _getRenderConfigBySta.iconMessage,
|
|
182
|
+
renderImageRenderer = _getRenderConfigBySta.renderImageRenderer,
|
|
183
|
+
renderSpinner = _getRenderConfigBySta.renderSpinner,
|
|
184
|
+
renderPlayButton = _getRenderConfigBySta.renderPlayButton,
|
|
185
|
+
renderBlanket = _getRenderConfigBySta.renderBlanket,
|
|
186
|
+
renderProgressBar = _getRenderConfigBySta.renderProgressBar,
|
|
187
|
+
renderTitleBox = _getRenderConfigBySta.renderTitleBox,
|
|
188
|
+
renderFailedTitleBox = _getRenderConfigBySta.renderFailedTitleBox,
|
|
189
|
+
renderTickBox = _getRenderConfigBySta.renderTickBox,
|
|
190
|
+
isFixedBlanket = _getRenderConfigBySta.isFixedBlanket,
|
|
191
|
+
customTitleMessage = _getRenderConfigBySta.customTitleMessage;
|
|
192
|
+
var shouldDisplayBackground = !cardPreview || !disableOverlay || status === 'error' || status === 'failed-processing';
|
|
193
|
+
var isPlayButtonClickable = shouldRenderPlayButton() && !!disableOverlay;
|
|
194
|
+
var isTickBoxSelectable = !disableOverlay && !!selectable && !selected;
|
|
195
|
+
// Disable tooltip for Media Single
|
|
196
|
+
var shouldDisplayTooltip = !disableOverlay && !shouldHideTooltip;
|
|
197
|
+
var hasTitleBox = !!(renderTitleBox || renderFailedTitleBox);
|
|
198
|
+
var _ref5 = metadata || {},
|
|
199
|
+
mediaType = _ref5.mediaType,
|
|
200
|
+
mimeType = _ref5.mimeType,
|
|
201
|
+
name = _ref5.name,
|
|
202
|
+
createdAt = _ref5.createdAt;
|
|
203
|
+
var actionsWithDetails = metadata && actions ? attachDetailsToActions(actions, metadata) : [];
|
|
204
|
+
var contents = jsx(React.Fragment, null, jsx(ImageContainer, {
|
|
205
|
+
testId: fileCardImageViewSelector,
|
|
206
|
+
mediaName: name,
|
|
207
|
+
status: status,
|
|
208
|
+
progress: progress,
|
|
209
|
+
selected: selected,
|
|
210
|
+
source: cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.source
|
|
211
|
+
}, renderTypeIcon && jsx(IconWrapper, {
|
|
212
|
+
breakpoint: breakpoint,
|
|
213
|
+
hasTitleBox: hasTitleBox
|
|
214
|
+
}, jsx(MimeTypeIcon, {
|
|
215
|
+
testId: "media-card-file-type-icon",
|
|
216
|
+
mediaType: mediaType,
|
|
217
|
+
mimeType: mimeType,
|
|
218
|
+
name: name
|
|
219
|
+
}), iconMessage), renderSpinner && jsx(IconWrapper, {
|
|
220
|
+
breakpoint: breakpoint,
|
|
221
|
+
hasTitleBox: hasTitleBox
|
|
222
|
+
}, jsx(SpinnerIcon, {
|
|
223
|
+
testId: "media-card-loading",
|
|
224
|
+
interactionName: "media-card-loading"
|
|
225
|
+
})), renderImageRenderer && !!cardPreview && jsx(ImageRenderer, {
|
|
226
|
+
cardPreview: cardPreview,
|
|
227
|
+
mediaType: (metadata === null || metadata === void 0 ? void 0 : metadata.mediaType) || 'unknown',
|
|
228
|
+
alt: alt || name,
|
|
229
|
+
resizeMode: resizeMode,
|
|
230
|
+
onDisplayImage: onDisplayImage,
|
|
231
|
+
onImageLoad: handleOnImageLoad,
|
|
232
|
+
onImageError: handleOnImageError,
|
|
233
|
+
nativeLazyLoad: nativeLazyLoad,
|
|
234
|
+
forceSyncDisplay: forceSyncDisplay
|
|
235
|
+
}), renderPlayButton && jsx(IconWrapper, {
|
|
236
|
+
breakpoint: breakpoint,
|
|
237
|
+
hasTitleBox: hasTitleBox
|
|
238
|
+
}, jsx(PlayButton, null)), renderBlanket && jsx(Blanket, {
|
|
239
|
+
isFixed: isFixedBlanket
|
|
240
|
+
}), renderTitleBox && name && jsx(TitleBox, {
|
|
241
|
+
name: name,
|
|
242
|
+
createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
|
|
243
|
+
breakpoint: breakpoint,
|
|
244
|
+
titleBoxIcon: titleBoxIcon,
|
|
245
|
+
titleBoxBgColor: titleBoxBgColor
|
|
246
|
+
}), renderFailedTitleBox && jsx(FailedTitleBox, {
|
|
247
|
+
breakpoint: breakpoint,
|
|
248
|
+
customMessage: customTitleMessage
|
|
249
|
+
}), renderProgressBar && jsx(ProgressBar, {
|
|
250
|
+
progress: progress,
|
|
251
|
+
breakpoint: breakpoint,
|
|
252
|
+
positionBottom: !hasTitleBox
|
|
253
|
+
}), renderTickBox && jsx(TickBox, {
|
|
254
|
+
selected: selected
|
|
255
|
+
})), disableOverlay || !actions || actions.length === 0 ? null : jsx(ActionsBar, {
|
|
256
|
+
filename: name,
|
|
257
|
+
actions: actionsWithDetails
|
|
258
|
+
}));
|
|
259
|
+
return jsx(React.Fragment, null, shouldOpenMediaViewer && jsx(OpenMediaViewerButton, {
|
|
260
|
+
fileName: name !== null && name !== void 0 ? name : '',
|
|
261
|
+
innerRef: openMediaViewerButtonRef,
|
|
262
|
+
onClick: onClick
|
|
263
|
+
}), jsx(Wrapper, {
|
|
264
|
+
testId: testId || 'media-card-view',
|
|
265
|
+
dimensions: dimensions,
|
|
266
|
+
onClick: onClick,
|
|
267
|
+
onMouseEnter: onMouseEnter,
|
|
268
|
+
innerRef: divRef,
|
|
269
|
+
breakpoint: breakpoint,
|
|
270
|
+
mediaCardCursor: mediaCardCursor,
|
|
271
|
+
disableOverlay: !!disableOverlay,
|
|
272
|
+
selected: !!selected,
|
|
273
|
+
displayBackground: shouldDisplayBackground,
|
|
274
|
+
isPlayButtonClickable: isPlayButtonClickable,
|
|
275
|
+
isTickBoxSelectable: isTickBoxSelectable,
|
|
276
|
+
shouldDisplayTooltip: shouldDisplayTooltip
|
|
277
|
+
}, shouldDisplayTooltip ? jsx(Tooltip, {
|
|
278
|
+
content: name,
|
|
279
|
+
position: "bottom",
|
|
280
|
+
tag: "div"
|
|
281
|
+
}, contents) : contents));
|
|
282
|
+
};
|
|
448
283
|
export var CardView = withAnalyticsEvents({
|
|
449
284
|
onClick: createAndFireMediaCardEvent({
|
|
450
285
|
eventType: 'ui',
|