@atlaskit/media-viewer 54.3.7 → 54.3.8
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 +8 -0
- package/dist/cjs/analytics/index.js +1 -1
- package/dist/cjs/analytics/ufoExperiences.js +1 -1
- package/dist/cjs/download.js +13 -7
- package/dist/cjs/header.js +2 -1
- package/dist/es2019/analytics/index.js +1 -1
- package/dist/es2019/analytics/ufoExperiences.js +1 -1
- package/dist/es2019/download.js +13 -6
- package/dist/es2019/header.js +2 -1
- package/dist/esm/analytics/index.js +1 -1
- package/dist/esm/analytics/ufoExperiences.js +1 -1
- package/dist/esm/download.js +13 -7
- package/dist/esm/header.js +2 -1
- package/dist/types/download.d.ts +2 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atlaskit/media-viewer
|
|
2
2
|
|
|
3
|
+
## 54.3.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`bea4da79c297d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/bea4da79c297d) -
|
|
8
|
+
[ux] EDITOR-7679 use fallback media name for filename in download
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
3
11
|
## 54.3.7
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -10,7 +10,7 @@ exports.packageVersion = exports.packageName = void 0;
|
|
|
10
10
|
var _analytics = require("@atlaskit/media-common/analytics");
|
|
11
11
|
var componentName = exports.component = exports.componentName = 'mediaViewer';
|
|
12
12
|
var packageName = exports.packageName = "@atlaskit/media-viewer";
|
|
13
|
-
var packageVersion = exports.packageVersion = "54.3.
|
|
13
|
+
var packageVersion = exports.packageVersion = "54.3.7";
|
|
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 = "54.3.
|
|
16
|
+
var packageVersion = "54.3.7";
|
|
17
17
|
var ufoExperience;
|
|
18
18
|
var getExperience = function getExperience() {
|
|
19
19
|
if (!ufoExperience) {
|
package/dist/cjs/download.js
CHANGED
|
@@ -22,6 +22,7 @@ var _download2 = require("./analytics/events/operational/download");
|
|
|
22
22
|
var _analytics = require("./analytics");
|
|
23
23
|
var _failedPreviewDownloadButtonClicked = require("./analytics/events/ui/failedPreviewDownloadButtonClicked");
|
|
24
24
|
var _styleWrappers = require("./styleWrappers");
|
|
25
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
25
26
|
var _errors = require("./errors");
|
|
26
27
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
27
28
|
var _abuseModal = require("@atlaskit/media-ui/abuseModal");
|
|
@@ -56,13 +57,14 @@ function DownloadButton(_ref) {
|
|
|
56
57
|
}
|
|
57
58
|
var createItemDownloader = function createItemDownloader(file, mediaClient, options) {
|
|
58
59
|
return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
59
|
-
var collectionName, traceContext, createAnalyticsEvent, id, name;
|
|
60
|
+
var collectionName, traceContext, createAnalyticsEvent, fallbackMediaName, id, fileStateName, name;
|
|
60
61
|
return _regenerator.default.wrap(function (_context) {
|
|
61
62
|
while (1) switch (_context.prev = _context.next) {
|
|
62
63
|
case 0:
|
|
63
|
-
collectionName = options.collectionName, traceContext = options.traceContext, createAnalyticsEvent = options.createAnalyticsEvent;
|
|
64
|
+
collectionName = options.collectionName, traceContext = options.traceContext, createAnalyticsEvent = options.createAnalyticsEvent, fallbackMediaName = options.fallbackMediaName;
|
|
64
65
|
id = file.id;
|
|
65
|
-
|
|
66
|
+
fileStateName = !(0, _mediaClient.isErrorFileState)(file) ? file.name : undefined;
|
|
67
|
+
name = fileStateName || ((0, _expValEquals.expValEquals)('platform_editor_media_download_fallback_name', 'isEnabled', true) ? fallbackMediaName : undefined);
|
|
66
68
|
mediaClient.file.downloadBinary(id, name, collectionName, traceContext).then(function () {
|
|
67
69
|
(0, _analytics.fireAnalytics)((0, _download2.createDownloadSucceededEventPayload)(file, traceContext), createAnalyticsEvent);
|
|
68
70
|
}).catch(function (e) {
|
|
@@ -94,7 +96,8 @@ var DownloadItem = function DownloadItem(_ref3) {
|
|
|
94
96
|
analyticspayload = _ref3.analyticspayload,
|
|
95
97
|
traceContext = _ref3.traceContext,
|
|
96
98
|
iconBefore = _ref3.iconBefore,
|
|
97
|
-
children = _ref3.children
|
|
99
|
+
children = _ref3.children,
|
|
100
|
+
fallbackMediaName = _ref3.fallbackMediaName;
|
|
98
101
|
var _useState = (0, _react.useState)(false),
|
|
99
102
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
100
103
|
isAbuseModalOpen = _useState2[0],
|
|
@@ -108,7 +111,8 @@ var DownloadItem = function DownloadItem(_ref3) {
|
|
|
108
111
|
var itemDownloader = createItemDownloader(fileState, mediaClient, {
|
|
109
112
|
collectionName: collectionName,
|
|
110
113
|
createAnalyticsEvent: createAnalyticsEvent,
|
|
111
|
-
traceContext: traceContext
|
|
114
|
+
traceContext: traceContext,
|
|
115
|
+
fallbackMediaName: fallbackMediaName
|
|
112
116
|
});
|
|
113
117
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, shouldRenderAbuseModal && /*#__PURE__*/_react.default.createElement(_abuseModal.AbuseModal, {
|
|
114
118
|
isOpen: isAbuseModalOpen,
|
|
@@ -154,7 +158,8 @@ var ToolbarDownloadButton = exports.ToolbarDownloadButton = function ToolbarDown
|
|
|
154
158
|
var state = _ref5.state,
|
|
155
159
|
mediaClient = _ref5.mediaClient,
|
|
156
160
|
identifier = _ref5.identifier,
|
|
157
|
-
traceContext = _ref5.traceContext
|
|
161
|
+
traceContext = _ref5.traceContext,
|
|
162
|
+
fallbackMediaName = _ref5.fallbackMediaName;
|
|
158
163
|
// TODO [MS-1731]: make it work for external files as well
|
|
159
164
|
if ((0, _mediaClient.isExternalImageIdentifier)(identifier)) {
|
|
160
165
|
return null;
|
|
@@ -168,7 +173,8 @@ var ToolbarDownloadButton = exports.ToolbarDownloadButton = function ToolbarDown
|
|
|
168
173
|
mediaClient: mediaClient,
|
|
169
174
|
collectionName: identifier.collectionName,
|
|
170
175
|
traceContext: traceContext,
|
|
171
|
-
iconBefore: downloadIcon
|
|
176
|
+
iconBefore: downloadIcon,
|
|
177
|
+
fallbackMediaName: fallbackMediaName
|
|
172
178
|
});
|
|
173
179
|
};
|
|
174
180
|
var DisabledToolbarDownloadButton = exports.DisabledToolbarDownloadButton = /*#__PURE__*/_react.default.createElement(_mediaUi.MediaButton, {
|
package/dist/cjs/header.js
CHANGED
|
@@ -205,7 +205,8 @@ var Header = exports.Header = function Header(_ref) {
|
|
|
205
205
|
state: item,
|
|
206
206
|
identifier: identifier,
|
|
207
207
|
mediaClient: mediaClient,
|
|
208
|
-
traceContext: traceContext
|
|
208
|
+
traceContext: traceContext,
|
|
209
|
+
fallbackMediaName: fallbackMediaName
|
|
209
210
|
});
|
|
210
211
|
}
|
|
211
212
|
})));
|
|
@@ -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 = "54.3.
|
|
4
|
+
const packageVersion = "54.3.7";
|
|
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 = "54.3.
|
|
6
|
+
const packageVersion = "54.3.7";
|
|
7
7
|
let ufoExperience;
|
|
8
8
|
const getExperience = () => {
|
|
9
9
|
if (!ufoExperience) {
|
package/dist/es2019/download.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createDownloadFailedEventPayload, createDownloadSucceededEventPayload }
|
|
|
10
10
|
import { fireAnalytics } from './analytics';
|
|
11
11
|
import { createFailedPreviewDownloadButtonClickedEvent } from './analytics/events/ui/failedPreviewDownloadButtonClicked';
|
|
12
12
|
import { DownloadButtonWrapper } from './styleWrappers';
|
|
13
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
13
14
|
import { MediaViewerError } from './errors';
|
|
14
15
|
import Tooltip from '@atlaskit/tooltip';
|
|
15
16
|
import { AbuseModal } from '@atlaskit/media-ui/abuseModal';
|
|
@@ -45,10 +46,12 @@ const createItemDownloader = (file, mediaClient, options) => async () => {
|
|
|
45
46
|
const {
|
|
46
47
|
collectionName,
|
|
47
48
|
traceContext,
|
|
48
|
-
createAnalyticsEvent
|
|
49
|
+
createAnalyticsEvent,
|
|
50
|
+
fallbackMediaName
|
|
49
51
|
} = options;
|
|
50
52
|
const id = file.id;
|
|
51
|
-
const
|
|
53
|
+
const fileStateName = !isErrorFileState(file) ? file.name : undefined;
|
|
54
|
+
const name = fileStateName || (expValEquals('platform_editor_media_download_fallback_name', 'isEnabled', true) ? fallbackMediaName : undefined);
|
|
52
55
|
mediaClient.file.downloadBinary(id, name, collectionName, traceContext).then(() => {
|
|
53
56
|
fireAnalytics(createDownloadSucceededEventPayload(file, traceContext), createAnalyticsEvent);
|
|
54
57
|
}).catch(e => {
|
|
@@ -75,7 +78,8 @@ const DownloadItem = ({
|
|
|
75
78
|
analyticspayload,
|
|
76
79
|
traceContext,
|
|
77
80
|
iconBefore,
|
|
78
|
-
children
|
|
81
|
+
children,
|
|
82
|
+
fallbackMediaName
|
|
79
83
|
}) => {
|
|
80
84
|
const [isAbuseModalOpen, setIsAbuseModalOpen] = useState(false);
|
|
81
85
|
const {
|
|
@@ -89,7 +93,8 @@ const DownloadItem = ({
|
|
|
89
93
|
const itemDownloader = createItemDownloader(fileState, mediaClient, {
|
|
90
94
|
collectionName: collectionName,
|
|
91
95
|
createAnalyticsEvent,
|
|
92
|
-
traceContext
|
|
96
|
+
traceContext,
|
|
97
|
+
fallbackMediaName
|
|
93
98
|
});
|
|
94
99
|
return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderAbuseModal && /*#__PURE__*/React.createElement(AbuseModal, {
|
|
95
100
|
isOpen: isAbuseModalOpen,
|
|
@@ -134,7 +139,8 @@ export const ToolbarDownloadButton = ({
|
|
|
134
139
|
state,
|
|
135
140
|
mediaClient,
|
|
136
141
|
identifier,
|
|
137
|
-
traceContext
|
|
142
|
+
traceContext,
|
|
143
|
+
fallbackMediaName
|
|
138
144
|
}) => {
|
|
139
145
|
// TODO [MS-1731]: make it work for external files as well
|
|
140
146
|
if (isExternalImageIdentifier(identifier)) {
|
|
@@ -149,7 +155,8 @@ export const ToolbarDownloadButton = ({
|
|
|
149
155
|
mediaClient: mediaClient,
|
|
150
156
|
collectionName: identifier.collectionName,
|
|
151
157
|
traceContext: traceContext,
|
|
152
|
-
iconBefore: downloadIcon
|
|
158
|
+
iconBefore: downloadIcon,
|
|
159
|
+
fallbackMediaName: fallbackMediaName
|
|
153
160
|
});
|
|
154
161
|
};
|
|
155
162
|
export const DisabledToolbarDownloadButton = /*#__PURE__*/React.createElement(MediaButton, {
|
package/dist/es2019/header.js
CHANGED
|
@@ -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 = "54.3.
|
|
4
|
+
var packageVersion = "54.3.7";
|
|
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 = "54.3.
|
|
9
|
+
var packageVersion = "54.3.7";
|
|
10
10
|
var ufoExperience;
|
|
11
11
|
var getExperience = function getExperience() {
|
|
12
12
|
if (!ufoExperience) {
|
package/dist/esm/download.js
CHANGED
|
@@ -15,6 +15,7 @@ import { createDownloadFailedEventPayload, createDownloadSucceededEventPayload }
|
|
|
15
15
|
import { fireAnalytics } from './analytics';
|
|
16
16
|
import { createFailedPreviewDownloadButtonClickedEvent } from './analytics/events/ui/failedPreviewDownloadButtonClicked';
|
|
17
17
|
import { DownloadButtonWrapper } from './styleWrappers';
|
|
18
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
18
19
|
import { MediaViewerError } from './errors';
|
|
19
20
|
import Tooltip from '@atlaskit/tooltip';
|
|
20
21
|
import { AbuseModal } from '@atlaskit/media-ui/abuseModal';
|
|
@@ -47,13 +48,14 @@ function DownloadButton(_ref) {
|
|
|
47
48
|
}
|
|
48
49
|
var createItemDownloader = function createItemDownloader(file, mediaClient, options) {
|
|
49
50
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
50
|
-
var collectionName, traceContext, createAnalyticsEvent, id, name;
|
|
51
|
+
var collectionName, traceContext, createAnalyticsEvent, fallbackMediaName, id, fileStateName, name;
|
|
51
52
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
52
53
|
while (1) switch (_context.prev = _context.next) {
|
|
53
54
|
case 0:
|
|
54
|
-
collectionName = options.collectionName, traceContext = options.traceContext, createAnalyticsEvent = options.createAnalyticsEvent;
|
|
55
|
+
collectionName = options.collectionName, traceContext = options.traceContext, createAnalyticsEvent = options.createAnalyticsEvent, fallbackMediaName = options.fallbackMediaName;
|
|
55
56
|
id = file.id;
|
|
56
|
-
|
|
57
|
+
fileStateName = !isErrorFileState(file) ? file.name : undefined;
|
|
58
|
+
name = fileStateName || (expValEquals('platform_editor_media_download_fallback_name', 'isEnabled', true) ? fallbackMediaName : undefined);
|
|
57
59
|
mediaClient.file.downloadBinary(id, name, collectionName, traceContext).then(function () {
|
|
58
60
|
fireAnalytics(createDownloadSucceededEventPayload(file, traceContext), createAnalyticsEvent);
|
|
59
61
|
}).catch(function (e) {
|
|
@@ -85,7 +87,8 @@ var DownloadItem = function DownloadItem(_ref3) {
|
|
|
85
87
|
analyticspayload = _ref3.analyticspayload,
|
|
86
88
|
traceContext = _ref3.traceContext,
|
|
87
89
|
iconBefore = _ref3.iconBefore,
|
|
88
|
-
children = _ref3.children
|
|
90
|
+
children = _ref3.children,
|
|
91
|
+
fallbackMediaName = _ref3.fallbackMediaName;
|
|
89
92
|
var _useState = useState(false),
|
|
90
93
|
_useState2 = _slicedToArray(_useState, 2),
|
|
91
94
|
isAbuseModalOpen = _useState2[0],
|
|
@@ -99,7 +102,8 @@ var DownloadItem = function DownloadItem(_ref3) {
|
|
|
99
102
|
var itemDownloader = createItemDownloader(fileState, mediaClient, {
|
|
100
103
|
collectionName: collectionName,
|
|
101
104
|
createAnalyticsEvent: createAnalyticsEvent,
|
|
102
|
-
traceContext: traceContext
|
|
105
|
+
traceContext: traceContext,
|
|
106
|
+
fallbackMediaName: fallbackMediaName
|
|
103
107
|
});
|
|
104
108
|
return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderAbuseModal && /*#__PURE__*/React.createElement(AbuseModal, {
|
|
105
109
|
isOpen: isAbuseModalOpen,
|
|
@@ -145,7 +149,8 @@ export var ToolbarDownloadButton = function ToolbarDownloadButton(_ref5) {
|
|
|
145
149
|
var state = _ref5.state,
|
|
146
150
|
mediaClient = _ref5.mediaClient,
|
|
147
151
|
identifier = _ref5.identifier,
|
|
148
|
-
traceContext = _ref5.traceContext
|
|
152
|
+
traceContext = _ref5.traceContext,
|
|
153
|
+
fallbackMediaName = _ref5.fallbackMediaName;
|
|
149
154
|
// TODO [MS-1731]: make it work for external files as well
|
|
150
155
|
if (isExternalImageIdentifier(identifier)) {
|
|
151
156
|
return null;
|
|
@@ -159,7 +164,8 @@ export var ToolbarDownloadButton = function ToolbarDownloadButton(_ref5) {
|
|
|
159
164
|
mediaClient: mediaClient,
|
|
160
165
|
collectionName: identifier.collectionName,
|
|
161
166
|
traceContext: traceContext,
|
|
162
|
-
iconBefore: downloadIcon
|
|
167
|
+
iconBefore: downloadIcon,
|
|
168
|
+
fallbackMediaName: fallbackMediaName
|
|
163
169
|
});
|
|
164
170
|
};
|
|
165
171
|
export var DisabledToolbarDownloadButton = /*#__PURE__*/React.createElement(MediaButton, {
|
package/dist/esm/header.js
CHANGED
package/dist/types/download.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type ToolbarDownloadButtonProps = {
|
|
|
15
15
|
identifier: Identifier;
|
|
16
16
|
mediaClient: MediaClient;
|
|
17
17
|
traceContext: MediaTraceContext;
|
|
18
|
+
fallbackMediaName?: string;
|
|
18
19
|
};
|
|
19
|
-
export declare const ToolbarDownloadButton: ({ state, mediaClient, identifier, traceContext, }: ToolbarDownloadButtonProps) => React.JSX.Element | null;
|
|
20
|
+
export declare const ToolbarDownloadButton: ({ state, mediaClient, identifier, traceContext, fallbackMediaName, }: ToolbarDownloadButtonProps) => React.JSX.Element | null;
|
|
20
21
|
export declare const DisabledToolbarDownloadButton: React.JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-viewer",
|
|
3
|
-
"version": "54.3.
|
|
3
|
+
"version": "54.3.8",
|
|
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/"
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@atlaskit/spinner": "^20.1.0",
|
|
55
55
|
"@atlaskit/textfield": "^9.1.0",
|
|
56
56
|
"@atlaskit/theme": "^26.1.0",
|
|
57
|
-
"@atlaskit/tmp-editor-statsig": "^121.
|
|
57
|
+
"@atlaskit/tmp-editor-statsig": "^121.1.0",
|
|
58
58
|
"@atlaskit/tokens": "^15.4.0",
|
|
59
59
|
"@atlaskit/tooltip": "^23.1.0",
|
|
60
60
|
"@atlaskit/ufo": "^1.0.0",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"@atlaskit/toggle": "^17.1.0",
|
|
95
95
|
"@atlassian/a11y-jest-testing": "^0.13.0",
|
|
96
96
|
"@atlassian/feature-flags-test-utils": "^1.1.0",
|
|
97
|
-
"@atlassian/testing-library": "^0.
|
|
97
|
+
"@atlassian/testing-library": "^0.9.0",
|
|
98
98
|
"@atlassian/ufo": "^0.8.0",
|
|
99
99
|
"@testing-library/dom": "^10.1.0",
|
|
100
100
|
"@testing-library/react": "^16.3.0",
|