@contentful/field-editor-reference 6.20.1 → 6.21.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/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +11 -1
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +7 -1
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +4 -2
- package/dist/cjs/common/SingleReferenceEditor.js +2 -1
- package/dist/cjs/entries/MultipleEntryReferenceEditor.js +2 -1
- package/dist/cjs/entries/SingleEntryReferenceEditor.js +1 -0
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +7 -1
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +13 -2
- package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +11 -1
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +7 -1
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +4 -2
- package/dist/esm/common/SingleReferenceEditor.js +2 -1
- package/dist/esm/entries/MultipleEntryReferenceEditor.js +2 -1
- package/dist/esm/entries/SingleEntryReferenceEditor.js +1 -0
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +7 -1
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +13 -2
- package/dist/types/assets/WrappedAssetCard/AssetCardActions.d.ts +1 -0
- package/dist/types/assets/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +2 -1
- package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +2 -1
- package/dist/types/common/ReferenceEditor.d.ts +2 -1
- package/dist/types/common/customCardTypes.d.ts +1 -0
- package/dist/types/entries/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +2 -1
- package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +2 -1
- package/package.json +2 -2
|
@@ -18,6 +18,7 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
20
20
|
const _f36components = require("@contentful/f36-components");
|
|
21
|
+
const _f36icons = require("@contentful/f36-icons");
|
|
21
22
|
const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
|
|
22
23
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
23
24
|
const _emotion = require("emotion");
|
|
@@ -134,7 +135,7 @@ function renderAssetInfo(props) {
|
|
|
134
135
|
];
|
|
135
136
|
}
|
|
136
137
|
function renderActions(props) {
|
|
137
|
-
const { entityFile, isDisabled, onEdit, onRemove } = props;
|
|
138
|
+
const { entityFile, isDisabled, onEdit, onRemove, onAddToReleaseAction } = props;
|
|
138
139
|
return [
|
|
139
140
|
/*#__PURE__*/ _react.createElement(_f36components.MenuSectionTitle, {
|
|
140
141
|
key: "section-title"
|
|
@@ -144,6 +145,15 @@ function renderActions(props) {
|
|
|
144
145
|
onClick: onEdit,
|
|
145
146
|
testId: "card-action-edit"
|
|
146
147
|
}, "Edit") : null,
|
|
148
|
+
onAddToReleaseAction ? /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
|
|
149
|
+
key: "add-to-release",
|
|
150
|
+
testId: "add-to-release",
|
|
151
|
+
onClick: ()=>{
|
|
152
|
+
onAddToReleaseAction();
|
|
153
|
+
}
|
|
154
|
+
}, /*#__PURE__*/ _react.createElement(_f36icons.PlusIcon, {
|
|
155
|
+
size: "tiny"
|
|
156
|
+
}), "Add to release") : null,
|
|
147
157
|
entityFile ? /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
|
|
148
158
|
key: "download",
|
|
149
159
|
onClick: ()=>{
|
|
@@ -72,6 +72,11 @@ function FetchingWrappedAssetCard(props) {
|
|
|
72
72
|
locales: props.sdk.locales,
|
|
73
73
|
isReference: true
|
|
74
74
|
});
|
|
75
|
+
const onAddToRelease = ()=>{
|
|
76
|
+
if (asset && props.addReferenceToRelease) {
|
|
77
|
+
void props.addReferenceToRelease(asset, props.sdk.field.locale);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
75
80
|
_react.useEffect(()=>{
|
|
76
81
|
if (asset) {
|
|
77
82
|
props.onAction && props.onAction({
|
|
@@ -138,7 +143,8 @@ function FetchingWrappedAssetCard(props) {
|
|
|
138
143
|
activeLocales,
|
|
139
144
|
releaseStatusMap,
|
|
140
145
|
release: props.sdk.release,
|
|
141
|
-
releaseEntityStatus
|
|
146
|
+
releaseEntityStatus,
|
|
147
|
+
onAddToRelease
|
|
142
148
|
};
|
|
143
149
|
if (status === 'loading') {
|
|
144
150
|
return props.viewType === 'link' ? /*#__PURE__*/ _react.createElement(_f36components.EntryCard, {
|
|
@@ -87,7 +87,7 @@ function getFileType(file) {
|
|
|
87
87
|
return groupToIconMap[groupName] || 'archive';
|
|
88
88
|
}
|
|
89
89
|
const THUMBNAIL_SIZE = 150;
|
|
90
|
-
const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release })=>{
|
|
90
|
+
const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release, onAddToRelease })=>{
|
|
91
91
|
const status = _fieldeditorshared.entityHelpers.getEntityStatus(asset.sys, useLocalizedEntityStatus ? localeCode : undefined);
|
|
92
92
|
const entityFile = asset.fields.file ? asset.fields.file[localeCode] || asset.fields.file[defaultLocaleCode] : undefined;
|
|
93
93
|
const imageUrl = _react.useMemo(()=>{
|
|
@@ -120,6 +120,7 @@ const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCod
|
|
|
120
120
|
defaultTitle: 'Untitled'
|
|
121
121
|
});
|
|
122
122
|
const href = getAssetUrl ? getAssetUrl(asset.sys.id) : undefined;
|
|
123
|
+
const onAddToReleaseAction = releaseEntityStatus === 'notInRelease' && release !== undefined && onAddToRelease !== undefined && !isDisabled ? onAddToRelease : undefined;
|
|
123
124
|
return /*#__PURE__*/ _react.createElement(_f36components.AssetCard, {
|
|
124
125
|
as: isClickable && href ? 'a' : 'article',
|
|
125
126
|
type: getFileType(entityFile),
|
|
@@ -158,7 +159,8 @@ const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCod
|
|
|
158
159
|
entityFile,
|
|
159
160
|
isDisabled: isDisabled,
|
|
160
161
|
onEdit,
|
|
161
|
-
onRemove
|
|
162
|
+
onRemove,
|
|
163
|
+
onAddToReleaseAction
|
|
162
164
|
}),
|
|
163
165
|
...entityFile ? (0, _AssetCardActions.renderAssetInfo)({
|
|
164
166
|
entityFile
|
|
@@ -100,7 +100,8 @@ function Editor(props) {
|
|
|
100
100
|
}
|
|
101
101
|
return props.children({
|
|
102
102
|
...props,
|
|
103
|
-
renderCustomCard: props.renderCustomCard && customCardRenderer
|
|
103
|
+
renderCustomCard: props.renderCustomCard && customCardRenderer,
|
|
104
|
+
addReferenceToRelease: props.addReferenceToRelease
|
|
104
105
|
});
|
|
105
106
|
}
|
|
106
107
|
function SingleReferenceEditor(props) {
|
|
@@ -85,7 +85,8 @@ function MultipleEntryReferenceEditor(props) {
|
|
|
85
85
|
onMoveTop: index !== 0 ? ()=>childrenProps.onMove(index, 0) : undefined,
|
|
86
86
|
onMoveBottom: index !== lastIndex ? ()=>childrenProps.onMove(index, lastIndex) : undefined,
|
|
87
87
|
renderDragHandle: DragHandle,
|
|
88
|
-
isBeingDragged: index === indexToUpdate
|
|
88
|
+
isBeingDragged: index === indexToUpdate,
|
|
89
|
+
addReferenceToRelease: props.addReferenceToRelease
|
|
89
90
|
});
|
|
90
91
|
}));
|
|
91
92
|
}
|
|
@@ -68,6 +68,7 @@ function SingleEntryReferenceEditor(props) {
|
|
|
68
68
|
hasCardEditActions: hasCardEditActions,
|
|
69
69
|
hasCardRemoveActions: hasCardRemoveActions,
|
|
70
70
|
activeLocales: activeLocales,
|
|
71
|
+
addReferenceToRelease: props.addReferenceToRelease,
|
|
71
72
|
onRemove: ()=>{
|
|
72
73
|
setValue(null);
|
|
73
74
|
}
|
|
@@ -114,6 +114,11 @@ function FetchingWrappedEntryCard(props) {
|
|
|
114
114
|
contentTypeId: entry?.sys?.contentType?.sys?.id ?? ''
|
|
115
115
|
});
|
|
116
116
|
};
|
|
117
|
+
const onAddToRelease = ()=>{
|
|
118
|
+
if (entry && props.addReferenceToRelease) {
|
|
119
|
+
void props.addReferenceToRelease(entry, props.sdk.field.locale);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
117
122
|
_react.useEffect(()=>{
|
|
118
123
|
if (entry) {
|
|
119
124
|
props.onAction?.({
|
|
@@ -168,7 +173,8 @@ function FetchingWrappedEntryCard(props) {
|
|
|
168
173
|
activeLocales: props.activeLocales,
|
|
169
174
|
releaseStatusMap,
|
|
170
175
|
release: props.sdk.release,
|
|
171
|
-
releaseEntityStatus
|
|
176
|
+
releaseEntityStatus,
|
|
177
|
+
onAddToRelease
|
|
172
178
|
};
|
|
173
179
|
const { hasCardEditActions, hasCardMoveActions, hasCardRemoveActions } = props;
|
|
174
180
|
function renderDefaultCard(props) {
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "WrappedEntryCard", {
|
|
|
10
10
|
});
|
|
11
11
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _f36components = require("@contentful/f36-components");
|
|
13
|
+
const _f36icons = require("@contentful/f36-icons");
|
|
13
14
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
14
15
|
const _components = require("../../components");
|
|
15
16
|
const _SpaceName = require("../../components/SpaceName/SpaceName");
|
|
@@ -61,7 +62,7 @@ const defaultProps = {
|
|
|
61
62
|
hasCardMoveActions: true,
|
|
62
63
|
hasCardRemoveActions: true
|
|
63
64
|
};
|
|
64
|
-
function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release }) {
|
|
65
|
+
function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release, onAddToRelease }) {
|
|
65
66
|
const [file, setFile] = _react.useState(null);
|
|
66
67
|
_react.useEffect(()=>{
|
|
67
68
|
let mounted = true;
|
|
@@ -112,6 +113,7 @@ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeC
|
|
|
112
113
|
localeCode,
|
|
113
114
|
defaultLocaleCode
|
|
114
115
|
});
|
|
116
|
+
const showAddToReleaseAction = releaseEntityStatus === 'notInRelease' && release !== undefined && onAddToRelease !== undefined && !isDisabled;
|
|
115
117
|
return /*#__PURE__*/ _react.createElement(_f36components.EntryCard, {
|
|
116
118
|
as: isClickable && entryUrl ? 'a' : 'article',
|
|
117
119
|
href: isClickable ? entryUrl : undefined,
|
|
@@ -142,7 +144,7 @@ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeC
|
|
|
142
144
|
dragHandleRender: renderDragHandle,
|
|
143
145
|
withDragHandle: !!renderDragHandle && !isDisabled,
|
|
144
146
|
draggable: !!renderDragHandle && !isDisabled,
|
|
145
|
-
actions: onEdit || onRemove ? [
|
|
147
|
+
actions: onEdit || onRemove || showAddToReleaseAction ? [
|
|
146
148
|
hasCardEditActions && onEdit ? /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
|
|
147
149
|
key: "edit",
|
|
148
150
|
testId: "edit",
|
|
@@ -157,6 +159,15 @@ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeC
|
|
|
157
159
|
onRemove && onRemove();
|
|
158
160
|
}
|
|
159
161
|
}, "Remove") : null,
|
|
162
|
+
showAddToReleaseAction ? /*#__PURE__*/ _react.createElement(_f36components.MenuItem, {
|
|
163
|
+
key: "add-to-release",
|
|
164
|
+
testId: "add-to-release",
|
|
165
|
+
onClick: ()=>{
|
|
166
|
+
onAddToRelease();
|
|
167
|
+
}
|
|
168
|
+
}, /*#__PURE__*/ _react.createElement(_f36icons.PlusIcon, {
|
|
169
|
+
size: "tiny"
|
|
170
|
+
}), "Add to release") : null,
|
|
160
171
|
hasCardMoveActions && (onMoveTop || onMoveBottom) && !isDisabled ? /*#__PURE__*/ _react.createElement(_f36components.MenuDivider, {
|
|
161
172
|
key: "divider"
|
|
162
173
|
}) : null,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { MenuItem, Text, MenuSectionTitle } from '@contentful/f36-components';
|
|
3
|
+
import { PlusIcon } from '@contentful/f36-icons';
|
|
3
4
|
import tokens from '@contentful/f36-tokens';
|
|
4
5
|
import { shortenStorageUnit } from '@contentful/field-editor-shared';
|
|
5
6
|
import { css } from 'emotion';
|
|
@@ -70,7 +71,7 @@ export function renderAssetInfo(props) {
|
|
|
70
71
|
];
|
|
71
72
|
}
|
|
72
73
|
export function renderActions(props) {
|
|
73
|
-
const { entityFile, isDisabled, onEdit, onRemove } = props;
|
|
74
|
+
const { entityFile, isDisabled, onEdit, onRemove, onAddToReleaseAction } = props;
|
|
74
75
|
return [
|
|
75
76
|
/*#__PURE__*/ React.createElement(MenuSectionTitle, {
|
|
76
77
|
key: "section-title"
|
|
@@ -80,6 +81,15 @@ export function renderActions(props) {
|
|
|
80
81
|
onClick: onEdit,
|
|
81
82
|
testId: "card-action-edit"
|
|
82
83
|
}, "Edit") : null,
|
|
84
|
+
onAddToReleaseAction ? /*#__PURE__*/ React.createElement(MenuItem, {
|
|
85
|
+
key: "add-to-release",
|
|
86
|
+
testId: "add-to-release",
|
|
87
|
+
onClick: ()=>{
|
|
88
|
+
onAddToReleaseAction();
|
|
89
|
+
}
|
|
90
|
+
}, /*#__PURE__*/ React.createElement(PlusIcon, {
|
|
91
|
+
size: "tiny"
|
|
92
|
+
}), "Add to release") : null,
|
|
83
93
|
entityFile ? /*#__PURE__*/ React.createElement(MenuItem, {
|
|
84
94
|
key: "download",
|
|
85
95
|
onClick: ()=>{
|
|
@@ -21,6 +21,11 @@ export function FetchingWrappedAssetCard(props) {
|
|
|
21
21
|
locales: props.sdk.locales,
|
|
22
22
|
isReference: true
|
|
23
23
|
});
|
|
24
|
+
const onAddToRelease = ()=>{
|
|
25
|
+
if (asset && props.addReferenceToRelease) {
|
|
26
|
+
void props.addReferenceToRelease(asset, props.sdk.field.locale);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
24
29
|
React.useEffect(()=>{
|
|
25
30
|
if (asset) {
|
|
26
31
|
props.onAction && props.onAction({
|
|
@@ -87,7 +92,8 @@ export function FetchingWrappedAssetCard(props) {
|
|
|
87
92
|
activeLocales,
|
|
88
93
|
releaseStatusMap,
|
|
89
94
|
release: props.sdk.release,
|
|
90
|
-
releaseEntityStatus
|
|
95
|
+
releaseEntityStatus,
|
|
96
|
+
onAddToRelease
|
|
91
97
|
};
|
|
92
98
|
if (status === 'loading') {
|
|
93
99
|
return props.viewType === 'link' ? /*#__PURE__*/ React.createElement(EntryCard, {
|
|
@@ -31,7 +31,7 @@ function getFileType(file) {
|
|
|
31
31
|
return groupToIconMap[groupName] || 'archive';
|
|
32
32
|
}
|
|
33
33
|
const THUMBNAIL_SIZE = 150;
|
|
34
|
-
export const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release })=>{
|
|
34
|
+
export const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release, onAddToRelease })=>{
|
|
35
35
|
const status = entityHelpers.getEntityStatus(asset.sys, useLocalizedEntityStatus ? localeCode : undefined);
|
|
36
36
|
const entityFile = asset.fields.file ? asset.fields.file[localeCode] || asset.fields.file[defaultLocaleCode] : undefined;
|
|
37
37
|
const imageUrl = React.useMemo(()=>{
|
|
@@ -64,6 +64,7 @@ export const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLo
|
|
|
64
64
|
defaultTitle: 'Untitled'
|
|
65
65
|
});
|
|
66
66
|
const href = getAssetUrl ? getAssetUrl(asset.sys.id) : undefined;
|
|
67
|
+
const onAddToReleaseAction = releaseEntityStatus === 'notInRelease' && release !== undefined && onAddToRelease !== undefined && !isDisabled ? onAddToRelease : undefined;
|
|
67
68
|
return /*#__PURE__*/ React.createElement(AssetCard, {
|
|
68
69
|
as: isClickable && href ? 'a' : 'article',
|
|
69
70
|
type: getFileType(entityFile),
|
|
@@ -102,7 +103,8 @@ export const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLo
|
|
|
102
103
|
entityFile,
|
|
103
104
|
isDisabled: isDisabled,
|
|
104
105
|
onEdit,
|
|
105
|
-
onRemove
|
|
106
|
+
onRemove,
|
|
107
|
+
onAddToReleaseAction
|
|
106
108
|
}),
|
|
107
109
|
...entityFile ? renderAssetInfo({
|
|
108
110
|
entityFile
|
|
@@ -50,7 +50,8 @@ function Editor(props) {
|
|
|
50
50
|
}
|
|
51
51
|
return props.children({
|
|
52
52
|
...props,
|
|
53
|
-
renderCustomCard: props.renderCustomCard && customCardRenderer
|
|
53
|
+
renderCustomCard: props.renderCustomCard && customCardRenderer,
|
|
54
|
+
addReferenceToRelease: props.addReferenceToRelease
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
57
|
export function SingleReferenceEditor(props) {
|
|
@@ -34,7 +34,8 @@ export function MultipleEntryReferenceEditor(props) {
|
|
|
34
34
|
onMoveTop: index !== 0 ? ()=>childrenProps.onMove(index, 0) : undefined,
|
|
35
35
|
onMoveBottom: index !== lastIndex ? ()=>childrenProps.onMove(index, lastIndex) : undefined,
|
|
36
36
|
renderDragHandle: DragHandle,
|
|
37
|
-
isBeingDragged: index === indexToUpdate
|
|
37
|
+
isBeingDragged: index === indexToUpdate,
|
|
38
|
+
addReferenceToRelease: props.addReferenceToRelease
|
|
38
39
|
});
|
|
39
40
|
}));
|
|
40
41
|
}
|
|
@@ -17,6 +17,7 @@ export function SingleEntryReferenceEditor(props) {
|
|
|
17
17
|
hasCardEditActions: hasCardEditActions,
|
|
18
18
|
hasCardRemoveActions: hasCardRemoveActions,
|
|
19
19
|
activeLocales: activeLocales,
|
|
20
|
+
addReferenceToRelease: props.addReferenceToRelease,
|
|
20
21
|
onRemove: ()=>{
|
|
21
22
|
setValue(null);
|
|
22
23
|
}
|
|
@@ -63,6 +63,11 @@ export function FetchingWrappedEntryCard(props) {
|
|
|
63
63
|
contentTypeId: entry?.sys?.contentType?.sys?.id ?? ''
|
|
64
64
|
});
|
|
65
65
|
};
|
|
66
|
+
const onAddToRelease = ()=>{
|
|
67
|
+
if (entry && props.addReferenceToRelease) {
|
|
68
|
+
void props.addReferenceToRelease(entry, props.sdk.field.locale);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
66
71
|
React.useEffect(()=>{
|
|
67
72
|
if (entry) {
|
|
68
73
|
props.onAction?.({
|
|
@@ -117,7 +122,8 @@ export function FetchingWrappedEntryCard(props) {
|
|
|
117
122
|
activeLocales: props.activeLocales,
|
|
118
123
|
releaseStatusMap,
|
|
119
124
|
release: props.sdk.release,
|
|
120
|
-
releaseEntityStatus
|
|
125
|
+
releaseEntityStatus,
|
|
126
|
+
onAddToRelease
|
|
121
127
|
};
|
|
122
128
|
const { hasCardEditActions, hasCardMoveActions, hasCardRemoveActions } = props;
|
|
123
129
|
function renderDefaultCard(props) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { EntryCard, MenuDivider, MenuItem } from '@contentful/f36-components';
|
|
3
|
+
import { PlusIcon } from '@contentful/f36-icons';
|
|
3
4
|
import { entityHelpers, isValidImage } from '@contentful/field-editor-shared';
|
|
4
5
|
import { AssetThumbnail, MissingEntityCard, EntityStatusBadge } from '../../components';
|
|
5
6
|
import { SpaceName } from '../../components/SpaceName/SpaceName';
|
|
@@ -10,7 +11,7 @@ const defaultProps = {
|
|
|
10
11
|
hasCardMoveActions: true,
|
|
11
12
|
hasCardRemoveActions: true
|
|
12
13
|
};
|
|
13
|
-
export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release }) {
|
|
14
|
+
export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release, onAddToRelease }) {
|
|
14
15
|
const [file, setFile] = React.useState(null);
|
|
15
16
|
React.useEffect(()=>{
|
|
16
17
|
let mounted = true;
|
|
@@ -61,6 +62,7 @@ export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales,
|
|
|
61
62
|
localeCode,
|
|
62
63
|
defaultLocaleCode
|
|
63
64
|
});
|
|
65
|
+
const showAddToReleaseAction = releaseEntityStatus === 'notInRelease' && release !== undefined && onAddToRelease !== undefined && !isDisabled;
|
|
64
66
|
return /*#__PURE__*/ React.createElement(EntryCard, {
|
|
65
67
|
as: isClickable && entryUrl ? 'a' : 'article',
|
|
66
68
|
href: isClickable ? entryUrl : undefined,
|
|
@@ -91,7 +93,7 @@ export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales,
|
|
|
91
93
|
dragHandleRender: renderDragHandle,
|
|
92
94
|
withDragHandle: !!renderDragHandle && !isDisabled,
|
|
93
95
|
draggable: !!renderDragHandle && !isDisabled,
|
|
94
|
-
actions: onEdit || onRemove ? [
|
|
96
|
+
actions: onEdit || onRemove || showAddToReleaseAction ? [
|
|
95
97
|
hasCardEditActions && onEdit ? /*#__PURE__*/ React.createElement(MenuItem, {
|
|
96
98
|
key: "edit",
|
|
97
99
|
testId: "edit",
|
|
@@ -106,6 +108,15 @@ export function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales,
|
|
|
106
108
|
onRemove && onRemove();
|
|
107
109
|
}
|
|
108
110
|
}, "Remove") : null,
|
|
111
|
+
showAddToReleaseAction ? /*#__PURE__*/ React.createElement(MenuItem, {
|
|
112
|
+
key: "add-to-release",
|
|
113
|
+
testId: "add-to-release",
|
|
114
|
+
onClick: ()=>{
|
|
115
|
+
onAddToRelease();
|
|
116
|
+
}
|
|
117
|
+
}, /*#__PURE__*/ React.createElement(PlusIcon, {
|
|
118
|
+
size: "tiny"
|
|
119
|
+
}), "Add to release") : null,
|
|
109
120
|
hasCardMoveActions && (onMoveTop || onMoveBottom) && !isDisabled ? /*#__PURE__*/ React.createElement(MenuDivider, {
|
|
110
121
|
key: "divider"
|
|
111
122
|
}) : null,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { CustomCardRenderer, RenderCustomMissingEntityCard } from '../../common/customCardTypes';
|
|
3
|
-
import { Action, FieldAppSDK, ViewType, RenderDragFn } from '../../types';
|
|
3
|
+
import { Action, Asset, FieldAppSDK, ViewType, RenderDragFn } from '../../types';
|
|
4
4
|
type FetchingWrappedAssetCardProps = {
|
|
5
5
|
assetId: string;
|
|
6
6
|
isDisabled: boolean;
|
|
@@ -12,6 +12,7 @@ type FetchingWrappedAssetCardProps = {
|
|
|
12
12
|
renderDragHandle?: RenderDragFn;
|
|
13
13
|
renderCustomCard?: CustomCardRenderer;
|
|
14
14
|
renderCustomMissingEntityCard?: RenderCustomMissingEntityCard;
|
|
15
|
+
addReferenceToRelease?: (reference: Asset, localeCode?: string) => Promise<void>;
|
|
15
16
|
};
|
|
16
17
|
export declare function FetchingWrappedAssetCard(props: FetchingWrappedAssetCardProps): React.JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -23,9 +23,10 @@ export interface WrappedAssetCardProps {
|
|
|
23
23
|
releaseEntityStatus?: ReleaseEntityStatus;
|
|
24
24
|
releaseStatusMap?: ReleaseStatusMap;
|
|
25
25
|
release?: ReleaseV2Props;
|
|
26
|
+
onAddToRelease?: () => void;
|
|
26
27
|
}
|
|
27
28
|
export declare const WrappedAssetCard: {
|
|
28
|
-
({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release, }: WrappedAssetCardProps): React.JSX.Element;
|
|
29
|
+
({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseEntityStatus, releaseStatusMap, release, onAddToRelease, }: WrappedAssetCardProps): React.JSX.Element;
|
|
29
30
|
defaultProps: {
|
|
30
31
|
isClickable: boolean;
|
|
31
32
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FieldConnector } from '@contentful/field-editor-shared';
|
|
3
3
|
import type { LinkActionsProps } from '../components';
|
|
4
|
-
import { Action, ActionLabels, FieldAppSDK, ViewType } from '../types';
|
|
4
|
+
import { Action, ActionLabels, FieldAppSDK, ViewType, Entry, Asset } from '../types';
|
|
5
5
|
import { CustomCardRenderer, RenderCustomMissingEntityCard } from './customCardTypes';
|
|
6
6
|
export interface ReferenceEditorProps {
|
|
7
7
|
/**
|
|
@@ -33,6 +33,7 @@ export interface ReferenceEditorProps {
|
|
|
33
33
|
oldIndex: number;
|
|
34
34
|
newIndex: number;
|
|
35
35
|
}) => void;
|
|
36
|
+
addReferenceToRelease?: (reference: Entry | Asset, localeCode?: string) => Promise<void>;
|
|
36
37
|
}
|
|
37
38
|
export type CustomActionProps = LinkActionsProps;
|
|
38
39
|
export declare function ReferenceEditor<T>(props: ReferenceEditorProps & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { RenderCustomMissingEntityCard } from '../../common/customCardTypes';
|
|
3
3
|
import { ReferenceEditorProps } from '../../common/ReferenceEditor';
|
|
4
|
-
import { ContentType, RenderDragFn } from '../../types';
|
|
4
|
+
import { ContentType, Entry, RenderDragFn } from '../../types';
|
|
5
5
|
export type EntryCardReferenceEditorProps = ReferenceEditorProps & {
|
|
6
6
|
entryId: string;
|
|
7
7
|
index?: number;
|
|
@@ -17,5 +17,6 @@ export type EntryCardReferenceEditorProps = ReferenceEditorProps & {
|
|
|
17
17
|
activeLocales?: {
|
|
18
18
|
code: string;
|
|
19
19
|
}[];
|
|
20
|
+
addReferenceToRelease?: (reference: Entry, localeCode?: string) => Promise<void>;
|
|
20
21
|
};
|
|
21
22
|
export declare function FetchingWrappedEntryCard(props: EntryCardReferenceEditorProps): React.JSX.Element;
|
|
@@ -31,8 +31,9 @@ export interface WrappedEntryCardProps {
|
|
|
31
31
|
releaseEntityStatus?: ReleaseEntityStatus;
|
|
32
32
|
releaseStatusMap?: ReleaseStatusMap;
|
|
33
33
|
release?: ReleaseV2Props;
|
|
34
|
+
onAddToRelease?: () => void;
|
|
34
35
|
}
|
|
35
|
-
export declare function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release, }: WrappedEntryCardProps): React.JSX.Element;
|
|
36
|
+
export declare function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseEntityStatus, releaseStatusMap, release, onAddToRelease, }: WrappedEntryCardProps): React.JSX.Element;
|
|
36
37
|
export declare namespace WrappedEntryCard {
|
|
37
38
|
var defaultProps: {
|
|
38
39
|
isClickable: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/field-editor-reference",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.21.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"registry": "https://npm.pkg.github.com/"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "333fb851812fea920a1ddd113bd8d918922b53d5"
|
|
72
72
|
}
|