@contentful/field-editor-reference 5.21.2 → 5.21.4
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/dist/cjs/__fixtures__/FakeSdk.js +3 -3
- package/dist/cjs/__fixtures__/asset/index.js +10 -10
- package/dist/cjs/__fixtures__/content-type/index.js +1 -1
- package/dist/cjs/__fixtures__/entry/index.js +7 -7
- package/dist/cjs/__fixtures__/fixtures.js +6 -8
- package/dist/cjs/__fixtures__/locale/index.js +2 -2
- package/dist/cjs/__fixtures__/space/index.js +1 -1
- package/dist/cjs/assets/MultipleMediaEditor.js +5 -7
- package/dist/cjs/assets/SingleMediaEditor.js +4 -6
- package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +19 -21
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +11 -18
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +11 -20
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +9 -12
- package/dist/cjs/assets/index.js +3 -3
- package/dist/cjs/common/EntityStore.js +32 -51
- package/dist/cjs/common/MultipleReferenceEditor.js +11 -20
- package/dist/cjs/common/ReferenceEditor.js +5 -7
- package/dist/cjs/common/SingleReferenceEditor.js +7 -11
- package/dist/cjs/common/SortableLinkList.js +14 -14
- package/dist/cjs/common/customCardTypes.js +2 -4
- package/dist/cjs/common/queryClient.js +9 -14
- package/dist/cjs/common/useContentTypePermissions.js +1 -3
- package/dist/cjs/common/useEditorPermissions.js +3 -15
- package/dist/cjs/common/useEditorPermissions.spec.js +11 -12
- package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +3 -5
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +9 -13
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +15 -17
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +19 -29
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +12 -14
- package/dist/cjs/components/LinkActions/CombinedLinkActions.js +21 -28
- package/dist/cjs/components/LinkActions/LinkActions.js +15 -17
- package/dist/cjs/components/LinkActions/LinkEntityActions.js +17 -26
- package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +3 -5
- package/dist/cjs/components/LinkActions/helpers.js +5 -14
- package/dist/cjs/components/LinkActions/redesignStyles.js +4 -4
- package/dist/cjs/components/LinkActions/styles.js +1 -1
- package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +9 -11
- package/dist/cjs/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +4 -6
- package/dist/cjs/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +4 -6
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +8 -10
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +4 -9
- package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +4 -5
- package/dist/cjs/components/SpaceName/SpaceName.js +7 -9
- package/dist/cjs/components/index.js +12 -12
- package/dist/cjs/entries/MultipleEntryReferenceEditor.js +7 -9
- package/dist/cjs/entries/SingleEntryReferenceEditor.js +5 -7
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +11 -20
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +17 -23
- package/dist/cjs/entries/index.js +3 -3
- package/dist/cjs/index.js +37 -37
- package/dist/cjs/resources/Cards/ContentfulEntryCard.js +4 -13
- package/dist/cjs/resources/Cards/ResourceCard.js +12 -16
- package/dist/cjs/resources/Cards/ResourceCard.spec.js +17 -20
- package/dist/cjs/resources/MultipleResourceReferenceEditor.js +17 -20
- package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +13 -34
- package/dist/cjs/resources/SingleResourceReferenceEditor.js +9 -11
- package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +6 -13
- package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +5 -12
- package/dist/cjs/resources/useResourceLinkActions.js +2 -11
- package/dist/cjs/types.js +3 -3
- package/dist/cjs/utils/fromFieldValidations.js +1 -2
- package/dist/cjs/utils/useSortIDs.js +4 -6
- package/dist/esm/__fixtures__/FakeSdk.js +3 -3
- package/dist/esm/assets/MultipleMediaEditor.js +3 -3
- package/dist/esm/assets/SingleMediaEditor.js +2 -2
- package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +12 -12
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +9 -14
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +7 -15
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +6 -7
- package/dist/esm/common/EntityStore.js +22 -39
- package/dist/esm/common/MultipleReferenceEditor.js +9 -16
- package/dist/esm/common/ReferenceEditor.js +2 -2
- package/dist/esm/common/SingleReferenceEditor.js +5 -7
- package/dist/esm/common/SortableLinkList.js +12 -12
- package/dist/esm/common/queryClient.js +3 -10
- package/dist/esm/common/useContentTypePermissions.js +1 -3
- package/dist/esm/common/useEditorPermissions.js +3 -15
- package/dist/esm/common/useEditorPermissions.spec.js +11 -12
- package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +1 -1
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +5 -7
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +12 -12
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +15 -23
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +8 -9
- package/dist/esm/components/LinkActions/CombinedLinkActions.js +19 -30
- package/dist/esm/components/LinkActions/LinkActions.js +9 -9
- package/dist/esm/components/LinkActions/LinkEntityActions.js +11 -18
- package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +1 -1
- package/dist/esm/components/LinkActions/helpers.js +2 -11
- package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +6 -6
- package/dist/esm/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +2 -2
- package/dist/esm/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +2 -2
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +3 -3
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +2 -5
- package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +2 -11
- package/dist/esm/components/SpaceName/SpaceName.js +4 -4
- package/dist/esm/entries/MultipleEntryReferenceEditor.js +5 -5
- package/dist/esm/entries/SingleEntryReferenceEditor.js +3 -3
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +8 -15
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +14 -18
- package/dist/esm/resources/Cards/ContentfulEntryCard.js +2 -9
- package/dist/esm/resources/Cards/ResourceCard.js +10 -12
- package/dist/esm/resources/Cards/ResourceCard.spec.js +11 -12
- package/dist/esm/resources/MultipleResourceReferenceEditor.js +13 -14
- package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +11 -30
- package/dist/esm/resources/SingleResourceReferenceEditor.js +6 -6
- package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +4 -9
- package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +2 -9
- package/dist/esm/resources/useResourceLinkActions.js +2 -11
- package/dist/esm/utils/fromFieldValidations.js +0 -1
- package/dist/esm/utils/useSortIDs.js +2 -2
- package/dist/types/assets/MultipleMediaEditor.d.ts +2 -2
- package/dist/types/assets/SingleMediaEditor.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/AssetCardActions.d.ts +3 -3
- package/dist/types/assets/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/WrappedAssetLink.d.ts +2 -2
- package/dist/types/common/EntityStore.d.ts +1 -1
- package/dist/types/common/MultipleReferenceEditor.d.ts +1 -1
- package/dist/types/common/ReferenceEditor.d.ts +1 -1
- package/dist/types/common/SingleReferenceEditor.d.ts +1 -1
- package/dist/types/common/SortableLinkList.d.ts +1 -1
- package/dist/types/common/queryClient.d.ts +1 -1
- package/dist/types/components/AssetThumbnail/AssetThumbnail.d.ts +2 -2
- package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.d.ts +1 -1
- package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.d.ts +1 -1
- package/dist/types/components/LinkActions/CombinedLinkActions.d.ts +2 -2
- package/dist/types/components/LinkActions/LinkActions.d.ts +1 -1
- package/dist/types/components/LinkActions/LinkEntityActions.d.ts +2 -2
- package/dist/types/components/LinkActions/NoLinkPermissionsInfo.d.ts +2 -2
- package/dist/types/components/MissingEntityCard/MissingEntityCard.d.ts +2 -2
- package/dist/types/components/ResourceEntityErrorCard/ResourceEntityErrorCard.d.ts +2 -2
- package/dist/types/components/ResourceEntityErrorCard/UnsupportedEntityCard.d.ts +2 -2
- package/dist/types/components/ScheduledIconWithTooltip/ScheduleTooltip.d.ts +1 -1
- package/dist/types/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.d.ts +1 -1
- package/dist/types/components/SpaceName/SpaceName.d.ts +2 -2
- package/dist/types/entries/MultipleEntryReferenceEditor.d.ts +2 -2
- package/dist/types/entries/SingleEntryReferenceEditor.d.ts +2 -2
- package/dist/types/entries/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +2 -2
- package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +1 -1
- package/dist/types/resources/Cards/ContentfulEntryCard.d.ts +2 -2
- package/dist/types/resources/Cards/ResourceCard.d.ts +2 -2
- package/dist/types/resources/MultipleResourceReferenceEditor.d.ts +2 -2
- package/dist/types/resources/SingleResourceReferenceEditor.d.ts +2 -2
- package/package.json +7 -4
|
@@ -18,7 +18,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
18
18
|
id
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
const renderEditorPermissions = async ({ entityType, params =
|
|
21
|
+
const renderEditorPermissions = async ({ entityType , params ={} , allContentTypes =[] , customizeMock , customizeSdk })=>{
|
|
22
22
|
const sdk = makeFieldAppSDK(customizeMock);
|
|
23
23
|
customizeSdk?.(sdk);
|
|
24
24
|
const renderResult = (0, _reacthooks.renderHook)(()=>(0, _useEditorPermissions.useEditorPermissions)({
|
|
@@ -37,7 +37,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
37
37
|
};
|
|
38
38
|
describe(`behaviour on Asset`, ()=>{
|
|
39
39
|
it(`wont check access when turned off via instance params`, async ()=>{
|
|
40
|
-
const { result, sdk
|
|
40
|
+
const { result , sdk } = await renderEditorPermissions({
|
|
41
41
|
entityType: 'Asset',
|
|
42
42
|
params: {
|
|
43
43
|
showCreateEntityAction: false,
|
|
@@ -49,20 +49,20 @@ describe('useEditorPermissions', ()=>{
|
|
|
49
49
|
expect(sdk.access.can).not.toHaveBeenCalledWith();
|
|
50
50
|
});
|
|
51
51
|
it(`checks basic access`, async ()=>{
|
|
52
|
-
const { sdk
|
|
52
|
+
const { sdk } = await renderEditorPermissions({
|
|
53
53
|
entityType: 'Asset'
|
|
54
54
|
});
|
|
55
55
|
expect(sdk.access.can).toHaveBeenCalledWith('create', 'Asset');
|
|
56
56
|
expect(sdk.access.can).toHaveBeenCalledWith('read', 'Asset');
|
|
57
57
|
});
|
|
58
58
|
it(`defaults link asset action visibility to true`, async ()=>{
|
|
59
|
-
const { result
|
|
59
|
+
const { result } = await renderEditorPermissions({
|
|
60
60
|
entityType: 'Asset'
|
|
61
61
|
});
|
|
62
62
|
expect(result.current.canLinkEntity).toBeTruthy();
|
|
63
63
|
});
|
|
64
64
|
it(`returns empty contentTypes`, async ()=>{
|
|
65
|
-
const { result
|
|
65
|
+
const { result } = await renderEditorPermissions({
|
|
66
66
|
entityType: 'Asset',
|
|
67
67
|
allContentTypes: [
|
|
68
68
|
makeContentType('one')
|
|
@@ -81,7 +81,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
83
|
it(`wont check access when turned off via instance params`, async ()=>{
|
|
84
|
-
const { result, sdk
|
|
84
|
+
const { result , sdk } = await renderEditorPermissions({
|
|
85
85
|
entityType: 'Entry',
|
|
86
86
|
params: {
|
|
87
87
|
showCreateEntityAction: false,
|
|
@@ -97,7 +97,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
97
97
|
makeContentType('one'),
|
|
98
98
|
makeContentType('two')
|
|
99
99
|
];
|
|
100
|
-
const { result
|
|
100
|
+
const { result } = await renderEditorPermissions({
|
|
101
101
|
entityType: 'Entry',
|
|
102
102
|
allContentTypes,
|
|
103
103
|
customizeSdk: (sdk)=>{
|
|
@@ -111,7 +111,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
111
111
|
makeContentType('one'),
|
|
112
112
|
makeContentType('two')
|
|
113
113
|
];
|
|
114
|
-
const { result
|
|
114
|
+
const { result } = await renderEditorPermissions({
|
|
115
115
|
entityType: 'Entry',
|
|
116
116
|
allContentTypes,
|
|
117
117
|
customizeSdk: (sdk)=>{
|
|
@@ -125,7 +125,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
125
125
|
makeContentType('one'),
|
|
126
126
|
makeContentType('two')
|
|
127
127
|
];
|
|
128
|
-
const { result
|
|
128
|
+
const { result } = await renderEditorPermissions({
|
|
129
129
|
entityType: 'Entry',
|
|
130
130
|
allContentTypes,
|
|
131
131
|
customizeSdk: (sdk)=>{
|
|
@@ -134,13 +134,12 @@ describe('useEditorPermissions', ()=>{
|
|
|
134
134
|
});
|
|
135
135
|
expect(result.current.canLinkEntity).toBe(true);
|
|
136
136
|
});
|
|
137
|
-
// eslint-disable-next-line -- TODO: describe this disable jest/no-test-prefixes
|
|
138
137
|
it.skip(`denies creation when no content-type can be read`, async ()=>{
|
|
139
138
|
const allContentTypes = [
|
|
140
139
|
makeContentType('one'),
|
|
141
140
|
makeContentType('two')
|
|
142
141
|
];
|
|
143
|
-
const { result
|
|
142
|
+
const { result } = await renderEditorPermissions({
|
|
144
143
|
entityType: 'Entry',
|
|
145
144
|
allContentTypes,
|
|
146
145
|
customizeSdk: (sdk)=>{
|
|
@@ -154,7 +153,7 @@ describe('useEditorPermissions', ()=>{
|
|
|
154
153
|
makeContentType('one'),
|
|
155
154
|
makeContentType('two')
|
|
156
155
|
];
|
|
157
|
-
const { result
|
|
156
|
+
const { result } = await renderEditorPermissions({
|
|
158
157
|
entityType: 'Entry',
|
|
159
158
|
allContentTypes,
|
|
160
159
|
customizeMock: (field)=>{
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "AssetThumbnail", {
|
|
|
8
8
|
return AssetThumbnail;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
function _getRequireWildcardCache(nodeInterop) {
|
|
13
13
|
if (typeof WeakMap !== "function") return null;
|
|
14
14
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -30,9 +30,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
30
30
|
if (cache && cache.has(obj)) {
|
|
31
31
|
return cache.get(obj);
|
|
32
32
|
}
|
|
33
|
-
var newObj = {
|
|
34
|
-
__proto__: null
|
|
35
|
-
};
|
|
33
|
+
var newObj = {};
|
|
36
34
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
37
35
|
for(var key in obj){
|
|
38
36
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -55,7 +53,7 @@ const dimensions = {
|
|
|
55
53
|
height: 70
|
|
56
54
|
};
|
|
57
55
|
function AssetThumbnail(props) {
|
|
58
|
-
return
|
|
56
|
+
return _react.createElement("img", {
|
|
59
57
|
alt: props.file.fileName,
|
|
60
58
|
src: `${props.file.url}?w=${dimensions.width}&h=${dimensions.height}&fit=thumb`,
|
|
61
59
|
height: dimensions.height,
|
|
@@ -8,12 +8,12 @@ Object.defineProperty(exports, "CreateEntryLinkButton", {
|
|
|
8
8
|
return CreateEntryLinkButton;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
const _f36components = require("@contentful/f36-components");
|
|
13
13
|
const _f36icons = require("@contentful/f36-icons");
|
|
14
|
-
const _f36tokens =
|
|
14
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
15
15
|
const _emotion = require("emotion");
|
|
16
|
-
const _get =
|
|
16
|
+
const _get = _interop_require_default(require("lodash/get"));
|
|
17
17
|
const _CreateEntryMenuTrigger = require("./CreateEntryMenuTrigger");
|
|
18
18
|
function _interop_require_default(obj) {
|
|
19
19
|
return obj && obj.__esModule ? obj : {
|
|
@@ -41,9 +41,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
41
41
|
if (cache && cache.has(obj)) {
|
|
42
42
|
return cache.get(obj);
|
|
43
43
|
}
|
|
44
|
-
var newObj = {
|
|
45
|
-
__proto__: null
|
|
46
|
-
};
|
|
44
|
+
var newObj = {};
|
|
47
45
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
46
|
for(var key in obj){
|
|
49
47
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -75,17 +73,15 @@ const redesignStyles = {
|
|
|
75
73
|
maxWidth: '300px'
|
|
76
74
|
})
|
|
77
75
|
};
|
|
78
|
-
const CreateEntryLinkButton = ({ contentTypes, onSelect, customDropdownItems, text, testId, hasPlusIcon =
|
|
76
|
+
const CreateEntryLinkButton = ({ contentTypes , onSelect , customDropdownItems , text , testId , hasPlusIcon =false , useExperimentalStyles , suggestedContentTypeId , dropdownSettings , disabled =false })=>{
|
|
79
77
|
contentTypes = contentTypes.sort((a, b)=>a.name.localeCompare(b.name));
|
|
80
78
|
const suggestedContentType = contentTypes.find((ct)=>ct.sys.id === suggestedContentTypeId);
|
|
81
79
|
const buttonText = text || `Add ${(0, _get.default)(suggestedContentType || (contentTypes.length === 1 ? contentTypes[0] : {}), 'name', 'entry')}`;
|
|
82
80
|
const hasDropdown = contentTypes.length > 1 || customDropdownItems;
|
|
83
|
-
|
|
84
|
-
const plusIcon = hasPlusIcon ? /*#__PURE__*/ _react.createElement(_f36icons.PlusIcon, null) : undefined;
|
|
85
|
-
// TODO: Always use "New content" here if we fully switch to new layout.
|
|
81
|
+
const plusIcon = hasPlusIcon ? _react.createElement(_f36icons.PlusIcon, null) : undefined;
|
|
86
82
|
const contentTypesLabel = useExperimentalStyles ? 'New content' : undefined;
|
|
87
83
|
const styles = useExperimentalStyles ? redesignStyles : standardStyles;
|
|
88
|
-
return
|
|
84
|
+
return _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
89
85
|
contentTypes: contentTypes,
|
|
90
86
|
suggestedContentTypeId: suggestedContentTypeId,
|
|
91
87
|
contentTypesLabel: contentTypesLabel,
|
|
@@ -93,8 +89,8 @@ const CreateEntryLinkButton = ({ contentTypes, onSelect, customDropdownItems, te
|
|
|
93
89
|
testId: testId,
|
|
94
90
|
dropdownSettings: dropdownSettings,
|
|
95
91
|
customDropdownItems: customDropdownItems
|
|
96
|
-
}, ({ isSelecting
|
|
97
|
-
endIcon: hasDropdown ?
|
|
92
|
+
}, ({ isSelecting })=>_react.createElement(_f36components.Button, {
|
|
93
|
+
endIcon: hasDropdown ? _react.createElement(_f36icons.ChevronDownIcon, null) : undefined,
|
|
98
94
|
variant: "secondary",
|
|
99
95
|
className: styles.action,
|
|
100
96
|
isDisabled: disabled || isSelecting,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react =
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
6
|
require("@testing-library/jest-dom");
|
|
7
7
|
const _react1 = require("@testing-library/react");
|
|
8
|
-
const _noop =
|
|
8
|
+
const _noop = _interop_require_default(require("lodash/noop"));
|
|
9
9
|
const _CreateEntryLinkButton = require("./CreateEntryLinkButton");
|
|
10
10
|
function _interop_require_default(obj) {
|
|
11
11
|
return obj && obj.__esModule ? obj : {
|
|
@@ -33,9 +33,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
33
33
|
if (cache && cache.has(obj)) {
|
|
34
34
|
return cache.get(obj);
|
|
35
35
|
}
|
|
36
|
-
var newObj = {
|
|
37
|
-
__proto__: null
|
|
38
|
-
};
|
|
36
|
+
var newObj = {};
|
|
39
37
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
40
38
|
for(var key in obj){
|
|
41
39
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -87,14 +85,14 @@ describe('CreateEntryLinkButton general', ()=>{
|
|
|
87
85
|
}
|
|
88
86
|
};
|
|
89
87
|
it('renders with multiple content types as list', ()=>{
|
|
90
|
-
const { getByTestId
|
|
88
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
|
|
91
89
|
expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
|
|
92
90
|
const link = findButton(getByTestId);
|
|
93
91
|
expect(link).toBeDefined();
|
|
94
92
|
expect(link.textContent).toBe('Add entry');
|
|
95
93
|
});
|
|
96
94
|
it('renders dropdown menu on click when with multiple content types', ()=>{
|
|
97
|
-
const { getByTestId
|
|
95
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
|
|
98
96
|
_react1.fireEvent.click(findButton(getByTestId));
|
|
99
97
|
const menu = getByTestId('add-entry-menu');
|
|
100
98
|
expect(menu).toBeDefined();
|
|
@@ -104,7 +102,7 @@ describe('CreateEntryLinkButton general', ()=>{
|
|
|
104
102
|
});
|
|
105
103
|
it('renders suggestedContentType as text when given', ()=>{
|
|
106
104
|
const suggestedContentTypeId = 'ID_2';
|
|
107
|
-
const { getByTestId
|
|
105
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
108
106
|
...props,
|
|
109
107
|
suggestedContentTypeId: suggestedContentTypeId
|
|
110
108
|
}));
|
|
@@ -114,7 +112,7 @@ describe('CreateEntryLinkButton general', ()=>{
|
|
|
114
112
|
expect(button.textContent).toBe(`Add ${CONTENT_TYPE_2.name}`);
|
|
115
113
|
});
|
|
116
114
|
it('renders the name of the content type as part of the text if only 1 content type is given', ()=>{
|
|
117
|
-
const { getByTestId
|
|
115
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
118
116
|
onSelect: props.onSelect,
|
|
119
117
|
contentTypes: [
|
|
120
118
|
CONTENT_TYPE_1
|
|
@@ -130,7 +128,7 @@ describe('CreateEntryLinkButton general', ()=>{
|
|
|
130
128
|
text: 'CUSTOM_TEXT',
|
|
131
129
|
hasPlusIcon: true
|
|
132
130
|
};
|
|
133
|
-
const { getByTestId
|
|
131
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
134
132
|
...props,
|
|
135
133
|
...propsOverrides
|
|
136
134
|
}));
|
|
@@ -151,13 +149,13 @@ describe('CreateEntryLinkButton with multiple entries', ()=>{
|
|
|
151
149
|
}
|
|
152
150
|
};
|
|
153
151
|
it('should render dropdown items for each content type', ()=>{
|
|
154
|
-
const { getByTestId, getAllByTestId
|
|
152
|
+
const { getByTestId , getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
|
|
155
153
|
_react1.fireEvent.click(findButton(getByTestId));
|
|
156
154
|
expect(getAllByTestId('contentType')).toHaveLength(props.contentTypes.length);
|
|
157
155
|
});
|
|
158
156
|
it('calls onSelect after click on menu item', ()=>{
|
|
159
157
|
const selectSpy = jest.fn();
|
|
160
|
-
const { getByTestId, getAllByTestId
|
|
158
|
+
const { getByTestId , getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
161
159
|
...props,
|
|
162
160
|
onSelect: selectSpy
|
|
163
161
|
}));
|
|
@@ -177,7 +175,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
|
|
|
177
175
|
};
|
|
178
176
|
it('should fire the onSelect function when clicked', ()=>{
|
|
179
177
|
const onSelectStub = jest.fn();
|
|
180
|
-
const { getByTestId
|
|
178
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
181
179
|
...props,
|
|
182
180
|
onSelect: onSelectStub
|
|
183
181
|
}));
|
|
@@ -189,7 +187,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
|
|
|
189
187
|
describe('CreateEntryLinkButton common', ()=>{
|
|
190
188
|
it('should render a spinner if onSelect returns a promise', async ()=>{
|
|
191
189
|
const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
|
|
192
|
-
const { getByTestId, container
|
|
190
|
+
const { getByTestId , container } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
193
191
|
contentTypes: [
|
|
194
192
|
CONTENT_TYPE_1
|
|
195
193
|
],
|
|
@@ -205,7 +203,7 @@ describe('CreateEntryLinkButton common', ()=>{
|
|
|
205
203
|
});
|
|
206
204
|
it('should hide a spinner after the promise from onSelect resolves', async ()=>{
|
|
207
205
|
const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 500)));
|
|
208
|
-
const { getByTestId, container
|
|
206
|
+
const { getByTestId , container } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
209
207
|
contentTypes: [
|
|
210
208
|
CONTENT_TYPE_1
|
|
211
209
|
],
|
|
@@ -222,7 +220,7 @@ describe('CreateEntryLinkButton common', ()=>{
|
|
|
222
220
|
});
|
|
223
221
|
it('does not emit onSelect on subsequent click before the promise from onSelect resolves', async ()=>{
|
|
224
222
|
const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(()=>resolve(undefined), 200)));
|
|
225
|
-
const { getByTestId
|
|
223
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
226
224
|
contentTypes: [
|
|
227
225
|
CONTENT_TYPE_1
|
|
228
226
|
],
|
|
@@ -238,7 +236,7 @@ describe('CreateEntryLinkButton common', ()=>{
|
|
|
238
236
|
});
|
|
239
237
|
it('emits onSelect on subsequent click after the promise from onSelect resolves', async ()=>{
|
|
240
238
|
const onSelect = jest.fn(()=>Promise.resolve());
|
|
241
|
-
const { getByTestId
|
|
239
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
|
|
242
240
|
contentTypes: [
|
|
243
241
|
CONTENT_TYPE_1
|
|
244
242
|
],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
@@ -8,12 +8,12 @@ Object.defineProperty(exports, "CreateEntryMenuTrigger", {
|
|
|
8
8
|
return CreateEntryMenuTrigger;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
const _f36components = require("@contentful/f36-components");
|
|
13
13
|
const _f36icons = require("@contentful/f36-icons");
|
|
14
|
-
const _f36tokens =
|
|
14
|
+
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
15
15
|
const _emotion = require("emotion");
|
|
16
|
-
const _get =
|
|
16
|
+
const _get = _interop_require_default(require("lodash/get"));
|
|
17
17
|
function _interop_require_default(obj) {
|
|
18
18
|
return obj && obj.__esModule ? obj : {
|
|
19
19
|
default: obj
|
|
@@ -40,9 +40,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
40
40
|
if (cache && cache.has(obj)) {
|
|
41
41
|
return cache.get(obj);
|
|
42
42
|
}
|
|
43
|
-
var newObj = {
|
|
44
|
-
__proto__: null
|
|
45
|
-
};
|
|
43
|
+
var newObj = {};
|
|
46
44
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
47
45
|
for(var key in obj){
|
|
48
46
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -92,23 +90,16 @@ const styles = {
|
|
|
92
90
|
borderColor: _f36tokens.default.gray200
|
|
93
91
|
})
|
|
94
92
|
};
|
|
95
|
-
const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentTypesLabel, onSelect, testId, dropdownSettings =
|
|
93
|
+
const CreateEntryMenuTrigger = ({ contentTypes , suggestedContentTypeId , contentTypesLabel , onSelect , testId , dropdownSettings ={
|
|
96
94
|
position: 'bottom-left'
|
|
97
|
-
}, customDropdownItems, children, menuProps
|
|
95
|
+
} , customDropdownItems , children , menuProps })=>{
|
|
98
96
|
const [isOpen, setOpen] = (0, _react.useState)(false);
|
|
99
97
|
const [isSelecting, setSelecting] = (0, _react.useState)(false);
|
|
100
98
|
const [searchInput, setSearchInput] = (0, _react.useState)('');
|
|
101
99
|
const wrapper = (0, _react.useRef)(null);
|
|
102
100
|
const textField = (0, _react.useRef)(null);
|
|
103
101
|
const menuListRef = (0, _react.useRef)(null);
|
|
104
|
-
|
|
105
|
-
By default, dropdown wraps it's content, so it's width = the width of the widest item
|
|
106
|
-
During search, menu items change, and so the widest menu item can change
|
|
107
|
-
This leads to menu always changing it's width
|
|
108
|
-
To prevent this, we get the width of the menu item after the first mount of a dropdown (when all the content is displayed)
|
|
109
|
-
And hardcode it through the class name. This way we ensure that even during search the menu will keep that max width
|
|
110
|
-
That it had on initial mount and that fits any menu item in has
|
|
111
|
-
*/ const [dropdownWidth, setDropdownWidth] = (0, _react.useState)();
|
|
102
|
+
const [dropdownWidth, setDropdownWidth] = (0, _react.useState)();
|
|
112
103
|
const hasDropdown = contentTypes.length > 1 || !!customDropdownItems;
|
|
113
104
|
const closeMenu = ()=>setOpen(false);
|
|
114
105
|
(0, _react.useEffect)(()=>{
|
|
@@ -133,7 +124,6 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
|
|
|
133
124
|
const handleSelect = (item)=>{
|
|
134
125
|
closeMenu();
|
|
135
126
|
const res = onSelect(item.sys.id);
|
|
136
|
-
// TODO: Convert to controllable component.
|
|
137
127
|
if (res && typeof res.then === 'function') {
|
|
138
128
|
setSelecting(true);
|
|
139
129
|
res.then(()=>setSelecting(false), ()=>setSelecting(false));
|
|
@@ -153,28 +143,28 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
|
|
|
153
143
|
}, [
|
|
154
144
|
isOpen
|
|
155
145
|
]);
|
|
156
|
-
const renderSearchResultsCount = (resultsLength)=>resultsLength ?
|
|
146
|
+
const renderSearchResultsCount = (resultsLength)=>resultsLength ? _react.default.createElement(_f36components.Menu.SectionTitle, {
|
|
157
147
|
testId: "add-entru-menu-search-results"
|
|
158
148
|
}, resultsLength, " result", resultsLength > 1 ? 's' : '') : null;
|
|
159
149
|
const isSearchable = contentTypes.length > MAX_ITEMS_WITHOUT_SEARCH;
|
|
160
150
|
const maxDropdownHeight = suggestedContentTypeId ? 300 : 250;
|
|
161
151
|
const suggestedContentType = contentTypes.find((ct)=>ct.sys.id === suggestedContentTypeId);
|
|
162
152
|
const filteredContentTypes = contentTypes.filter((ct)=>!searchInput || (0, _get.default)(ct, 'name', 'Untitled').toLowerCase().includes(searchInput.toLowerCase()));
|
|
163
|
-
return
|
|
153
|
+
return _react.default.createElement("span", {
|
|
164
154
|
className: styles.wrapper,
|
|
165
155
|
ref: wrapper,
|
|
166
156
|
"data-test-id": testId
|
|
167
|
-
},
|
|
157
|
+
}, _react.default.createElement(_f36components.Menu, {
|
|
168
158
|
placement: menuPlacementMap[dropdownSettings.position],
|
|
169
159
|
isAutoalignmentEnabled: dropdownSettings.isAutoalignmentEnabled,
|
|
170
160
|
isOpen: isOpen,
|
|
171
161
|
onClose: closeMenu,
|
|
172
162
|
onOpen: handleMenuOpen,
|
|
173
163
|
...menuProps
|
|
174
|
-
},
|
|
164
|
+
}, _react.default.createElement(_f36components.Menu.Trigger, null, children({
|
|
175
165
|
isOpen,
|
|
176
166
|
isSelecting
|
|
177
|
-
})), isOpen &&
|
|
167
|
+
})), isOpen && _react.default.createElement(_f36components.Menu.List, {
|
|
178
168
|
className: styles.dropdownList,
|
|
179
169
|
style: {
|
|
180
170
|
width: dropdownWidth != undefined ? `${dropdownWidth}px` : undefined,
|
|
@@ -182,25 +172,25 @@ const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentT
|
|
|
182
172
|
},
|
|
183
173
|
ref: menuListRef,
|
|
184
174
|
testId: "add-entry-menu"
|
|
185
|
-
}, Boolean(customDropdownItems) &&
|
|
175
|
+
}, Boolean(customDropdownItems) && _react.default.createElement(_react.default.Fragment, null, customDropdownItems, _react.default.createElement(_f36components.Menu.Divider, null)), isSearchable && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
186
176
|
ref: textField,
|
|
187
177
|
className: styles.inputWrapper
|
|
188
|
-
},
|
|
178
|
+
}, _react.default.createElement(_f36components.TextInput, {
|
|
189
179
|
className: styles.searchInput,
|
|
190
180
|
placeholder: "Search all content types",
|
|
191
181
|
testId: "add-entry-menu-search",
|
|
192
182
|
value: searchInput,
|
|
193
183
|
onChange: (e)=>setSearchInput(e.target.value)
|
|
194
|
-
}),
|
|
184
|
+
}), _react.default.createElement(_f36icons.SearchIcon, {
|
|
195
185
|
className: styles.searchIcon
|
|
196
|
-
})),
|
|
186
|
+
})), _react.default.createElement(_f36components.Menu.Divider, null)), searchInput && renderSearchResultsCount(filteredContentTypes.length), suggestedContentType && !searchInput && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_f36components.Menu.SectionTitle, null, "Suggested Content Type"), _react.default.createElement(_f36components.Menu.Item, {
|
|
197
187
|
testId: "suggested",
|
|
198
188
|
onClick: ()=>handleSelect(suggestedContentType)
|
|
199
|
-
}, (0, _get.default)(suggestedContentType, 'name')),
|
|
189
|
+
}, (0, _get.default)(suggestedContentType, 'name')), _react.default.createElement(_f36components.Menu.Divider, null)), !searchInput && _react.default.createElement(_f36components.Menu.SectionTitle, null, contentTypesLabel), filteredContentTypes.length ? filteredContentTypes.map((contentType, i)=>_react.default.createElement(_f36components.Menu.Item, {
|
|
200
190
|
testId: "contentType",
|
|
201
191
|
key: `${(0, _get.default)(contentType, 'name')}-${i}`,
|
|
202
192
|
onClick: ()=>handleSelect(contentType)
|
|
203
|
-
}, (0, _get.default)(contentType, 'name', 'Untitled'))) :
|
|
193
|
+
}, (0, _get.default)(contentType, 'name', 'Untitled'))) : _react.default.createElement(_f36components.Menu.Item, {
|
|
204
194
|
testId: "add-entru-menu-search-results"
|
|
205
195
|
}, "No results found"))));
|
|
206
196
|
};
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react =
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
6
|
const _f36components = require("@contentful/f36-components");
|
|
7
7
|
require("@testing-library/jest-dom/extend-expect");
|
|
8
8
|
const _react1 = require("@testing-library/react");
|
|
9
|
-
const _noop =
|
|
10
|
-
const _fill =
|
|
9
|
+
const _noop = _interop_require_default(require("lodash/noop"));
|
|
10
|
+
const _fill = _interop_require_default(require("lodash/fill"));
|
|
11
11
|
const _CreateEntryMenuTrigger = require("./CreateEntryMenuTrigger");
|
|
12
12
|
function _interop_require_default(obj) {
|
|
13
13
|
return obj && obj.__esModule ? obj : {
|
|
@@ -35,9 +35,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
35
35
|
if (cache && cache.has(obj)) {
|
|
36
36
|
return cache.get(obj);
|
|
37
37
|
}
|
|
38
|
-
var newObj = {
|
|
39
|
-
__proto__: null
|
|
40
|
-
};
|
|
38
|
+
var newObj = {};
|
|
41
39
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
42
40
|
for(var key in obj){
|
|
43
41
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -89,7 +87,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
89
87
|
};
|
|
90
88
|
let stub = jest.fn();
|
|
91
89
|
beforeEach(()=>{
|
|
92
|
-
stub = jest.fn().mockImplementation(()
|
|
90
|
+
stub = jest.fn().mockImplementation(()=>_react.createElement(_f36components.Button, {
|
|
93
91
|
testId: "menu-trigger"
|
|
94
92
|
}));
|
|
95
93
|
});
|
|
@@ -97,13 +95,13 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
97
95
|
const stub = (api)=>{
|
|
98
96
|
expect(api.isOpen).toBe(false);
|
|
99
97
|
expect(api.isSelecting).toBe(false);
|
|
100
|
-
return
|
|
98
|
+
return _react.createElement("span", null);
|
|
101
99
|
};
|
|
102
|
-
(0, _react1.render)(
|
|
100
|
+
(0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, props, stub));
|
|
103
101
|
});
|
|
104
102
|
it('should set isSelecting to true in case onSelect returns a promise', async ()=>{
|
|
105
103
|
const selectStub = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
|
|
106
|
-
const { getAllByTestId, getByTestId
|
|
104
|
+
const { getAllByTestId , getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
107
105
|
...props,
|
|
108
106
|
onSelect: selectStub
|
|
109
107
|
}, stub));
|
|
@@ -117,7 +115,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
117
115
|
});
|
|
118
116
|
it('should not set isSelecting to true in case onSelect is sync', async ()=>{
|
|
119
117
|
const selectStub = jest.fn();
|
|
120
|
-
const { getAllByTestId, getByTestId
|
|
118
|
+
const { getAllByTestId , getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
121
119
|
...props,
|
|
122
120
|
onSelect: selectStub
|
|
123
121
|
}, stub));
|
|
@@ -134,7 +132,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
134
132
|
expect(selectStub).toHaveBeenCalled();
|
|
135
133
|
});
|
|
136
134
|
it('renders text input if contentTypes.length > 20', ()=>{
|
|
137
|
-
const { getByTestId
|
|
135
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
138
136
|
...props,
|
|
139
137
|
contentTypes: (0, _fill.default)(Array(21), CONTENT_TYPE_3)
|
|
140
138
|
}, stub));
|
|
@@ -145,7 +143,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
145
143
|
});
|
|
146
144
|
it('shows the search results if typed in input', ()=>{
|
|
147
145
|
const contentTypes = (0, _fill.default)((0, _fill.default)((0, _fill.default)(Array(21), CONTENT_TYPE_1, 0, 10), CONTENT_TYPE_2, 10, 20), CONTENT_TYPE_3, 20);
|
|
148
|
-
const { getByTestId, getAllByTestId
|
|
146
|
+
const { getByTestId , getAllByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
149
147
|
...props,
|
|
150
148
|
contentTypes: contentTypes
|
|
151
149
|
}, stub));
|
|
@@ -178,7 +176,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
|
|
|
178
176
|
expect(getByTestId('add-entru-menu-search-results').textContent).toBe('No results found');
|
|
179
177
|
});
|
|
180
178
|
it('shows suggestedContentType in the list', ()=>{
|
|
181
|
-
const { getByTestId
|
|
179
|
+
const { getByTestId } = (0, _react1.render)(_react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
|
|
182
180
|
...props,
|
|
183
181
|
suggestedContentTypeId: props.contentTypes[0].sys.id
|
|
184
182
|
}, stub));
|