@contentful/field-editor-shared 2.11.2 → 2.12.1
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/LocalePublishingEntityStatusBadge/LocalePublishingPopover.js +2 -1
- package/dist/cjs/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +2 -1
- package/dist/cjs/hooks/useActiveReleaseLocalesStatuses.js +13 -10
- package/dist/cjs/hooks/useActiveReleaseLocalesStatuses.spec.js +236 -245
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/utils/{getEntryReleaseStatus.js → getEntityReleaseStatus.js} +4 -4
- package/dist/cjs/utils/{getPreviousReleaseEntryVersion.js → getPreviousReleaseEntity.js} +5 -5
- package/dist/esm/LocalePublishingEntityStatusBadge/LocalePublishingPopover.js +3 -2
- package/dist/esm/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +3 -2
- package/dist/esm/hooks/useActiveReleaseLocalesStatuses.js +13 -10
- package/dist/esm/hooks/useActiveReleaseLocalesStatuses.spec.js +236 -245
- package/dist/esm/index.js +1 -1
- package/dist/esm/utils/{getEntryReleaseStatus.js → getEntityReleaseStatus.js} +2 -2
- package/dist/esm/utils/{getPreviousReleaseEntryVersion.js → getPreviousReleaseEntity.js} +3 -3
- package/dist/types/LocalePublishingEntityStatusBadge/LocalePublishingPopover.d.ts +1 -1
- package/dist/types/hooks/useActiveReleaseLocalesStatuses.d.ts +5 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +2 -2
- package/dist/types/utils/{getEntryReleaseStatus.d.ts → getEntityReleaseStatus.d.ts} +2 -2
- package/dist/types/utils/{getPreviousReleaseEntryVersion.d.ts → getPreviousReleaseEntity.d.ts} +3 -2
- package/package.json +2 -2
|
@@ -262,7 +262,8 @@ function LocalePublishingPopover({ entity, jobs, isScheduled, localesStatusMap,
|
|
|
262
262
|
tabIndex: 0,
|
|
263
263
|
onFocus: ()=>setIsOpen(true),
|
|
264
264
|
onBlur: ()=>setIsOpen(false),
|
|
265
|
-
endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.
|
|
265
|
+
endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.CaretDownIcon, {
|
|
266
|
+
size: "tiny",
|
|
266
267
|
color: getIconColor(entityStatus)
|
|
267
268
|
}),
|
|
268
269
|
onMouseOver: onMouseEnter,
|
|
@@ -233,7 +233,8 @@ function ReleaseEntityStatusPopover({ releaseLocalesStatusMap, activeLocales, is
|
|
|
233
233
|
variant: _constants.RELEASE_BADGES[status.primary].variant,
|
|
234
234
|
onFocus: ()=>setIsOpen(true),
|
|
235
235
|
onBlur: ()=>setIsOpen(false),
|
|
236
|
-
endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.
|
|
236
|
+
endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.CaretDownIcon, {
|
|
237
|
+
size: "tiny",
|
|
237
238
|
color: _constants.RELEASE_BADGES[status.primary].icon
|
|
238
239
|
}),
|
|
239
240
|
onMouseOver: onMouseEnter,
|
|
@@ -9,22 +9,25 @@ Object.defineProperty(exports, "useActiveReleaseLocalesStatuses", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _react = require("react");
|
|
12
|
-
const
|
|
13
|
-
const useActiveReleaseLocalesStatuses = ({
|
|
14
|
-
const previousReleaseEntity = (0, _react.useMemo)(()=>(0,
|
|
15
|
-
|
|
12
|
+
const _getPreviousReleaseEntity = require("../utils/getPreviousReleaseEntity");
|
|
13
|
+
const useActiveReleaseLocalesStatuses = ({ currentEntityDraft, entityId, entityType, releaseVersionMap, locales, activeRelease, releases })=>{
|
|
14
|
+
const previousReleaseEntity = (0, _react.useMemo)(()=>(0, _getPreviousReleaseEntity.getPreviousReleaseEntity)({
|
|
15
|
+
entityId,
|
|
16
|
+
entityType,
|
|
16
17
|
releaseVersionMap,
|
|
17
18
|
activeRelease,
|
|
18
19
|
releases
|
|
19
20
|
}).previousReleaseEntity, [
|
|
20
|
-
|
|
21
|
+
entityId,
|
|
22
|
+
entityType,
|
|
21
23
|
releaseVersionMap,
|
|
22
24
|
activeRelease,
|
|
23
25
|
releases
|
|
24
26
|
]);
|
|
25
|
-
const activeReleaseReleaseEntity = (0, _react.useMemo)(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id ===
|
|
27
|
+
const activeReleaseReleaseEntity = (0, _react.useMemo)(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id === entityId && entity.entity.sys.linkType === entityType), [
|
|
26
28
|
activeRelease?.entities.items,
|
|
27
|
-
|
|
29
|
+
entityId,
|
|
30
|
+
entityType
|
|
28
31
|
]);
|
|
29
32
|
const getLocaleStatus = (0, _react.useCallback)((localeCode)=>{
|
|
30
33
|
if (!activeReleaseReleaseEntity) {
|
|
@@ -52,8 +55,8 @@ const useActiveReleaseLocalesStatuses = ({ currentEntryDraft, entryId, releaseVe
|
|
|
52
55
|
return acc;
|
|
53
56
|
}
|
|
54
57
|
if (getLocaleStatus(locale.code) === 'draft') {
|
|
55
|
-
if (
|
|
56
|
-
const previousStatus =
|
|
58
|
+
if (currentEntityDraft?.sys.fieldStatus) {
|
|
59
|
+
const previousStatus = currentEntityDraft.sys.fieldStatus['*'][locale.code];
|
|
57
60
|
if (previousStatus === 'published' || previousStatus === 'changed') {
|
|
58
61
|
acc.set(locale.code, {
|
|
59
62
|
status: 'becomesDraft',
|
|
@@ -100,7 +103,7 @@ const useActiveReleaseLocalesStatuses = ({ currentEntryDraft, entryId, releaseVe
|
|
|
100
103
|
locales,
|
|
101
104
|
activeReleaseReleaseEntity,
|
|
102
105
|
getLocaleStatus,
|
|
103
|
-
|
|
106
|
+
currentEntityDraft?.sys.fieldStatus,
|
|
104
107
|
previousReleaseEntity
|
|
105
108
|
]);
|
|
106
109
|
return {
|
|
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
const _react = require("@testing-library/react");
|
|
6
|
-
const
|
|
6
|
+
const _getPreviousReleaseEntity = require("../utils/getPreviousReleaseEntity");
|
|
7
7
|
const _useActiveReleaseLocalesStatuses = require("./useActiveReleaseLocalesStatuses");
|
|
8
|
-
const buildEntry = (status)=>({
|
|
8
|
+
const buildEntry = (status, id = 'entry-1')=>({
|
|
9
9
|
sys: {
|
|
10
|
+
id,
|
|
11
|
+
type: 'Entry',
|
|
10
12
|
fieldStatus: {
|
|
11
13
|
'*': {
|
|
12
14
|
'en-US': status
|
|
@@ -14,17 +16,28 @@ const buildEntry = (status)=>({
|
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
18
|
});
|
|
17
|
-
const
|
|
19
|
+
const buildAsset = (status, id = 'asset-1')=>({
|
|
20
|
+
sys: {
|
|
21
|
+
id,
|
|
22
|
+
type: 'Asset',
|
|
23
|
+
fieldStatus: {
|
|
24
|
+
'*': {
|
|
25
|
+
'en-US': status
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
const createEntryBasedReleaseEntity = ({ entityId = 'entry-1', action = 'publish', entityType = 'Entry' })=>({
|
|
18
31
|
entity: {
|
|
19
32
|
sys: {
|
|
20
33
|
type: 'Link',
|
|
21
|
-
linkType:
|
|
22
|
-
id:
|
|
34
|
+
linkType: entityType,
|
|
35
|
+
id: entityId
|
|
23
36
|
}
|
|
24
37
|
},
|
|
25
38
|
action
|
|
26
39
|
});
|
|
27
|
-
const createEntryBasedRelease = ({
|
|
40
|
+
const createEntryBasedRelease = ({ entityId, action, entityType = 'Entry' } = {})=>({
|
|
28
41
|
title: 'Release 1',
|
|
29
42
|
sys: {
|
|
30
43
|
id: 'release-1',
|
|
@@ -34,18 +47,19 @@ const createEntryBasedRelease = ({ entryId, action } = {})=>({
|
|
|
34
47
|
entities: {
|
|
35
48
|
items: [
|
|
36
49
|
createEntryBasedReleaseEntity({
|
|
37
|
-
|
|
38
|
-
action
|
|
50
|
+
entityId,
|
|
51
|
+
action,
|
|
52
|
+
entityType
|
|
39
53
|
})
|
|
40
54
|
]
|
|
41
55
|
}
|
|
42
56
|
});
|
|
43
|
-
const createLocaleBasedReleaseEntity = ({
|
|
57
|
+
const createLocaleBasedReleaseEntity = ({ entityId = 'entry-1', verb = 'add', entityType = 'Entry' })=>({
|
|
44
58
|
entity: {
|
|
45
59
|
sys: {
|
|
46
60
|
type: 'Link',
|
|
47
|
-
linkType:
|
|
48
|
-
id:
|
|
61
|
+
linkType: entityType,
|
|
62
|
+
id: entityId
|
|
49
63
|
}
|
|
50
64
|
},
|
|
51
65
|
[verb]: {
|
|
@@ -56,7 +70,7 @@ const createLocaleBasedReleaseEntity = ({ entryId = 'entry-1', verb = 'add' })=>
|
|
|
56
70
|
}
|
|
57
71
|
}
|
|
58
72
|
});
|
|
59
|
-
const createLocaleBasedRelease = ({
|
|
73
|
+
const createLocaleBasedRelease = ({ entityId, verb, entityType = 'Entry' } = {})=>({
|
|
60
74
|
title: 'Release 1',
|
|
61
75
|
sys: {
|
|
62
76
|
id: 'release-1',
|
|
@@ -66,263 +80,240 @@ const createLocaleBasedRelease = ({ entryId, verb } = {})=>({
|
|
|
66
80
|
entities: {
|
|
67
81
|
items: [
|
|
68
82
|
createLocaleBasedReleaseEntity({
|
|
69
|
-
|
|
70
|
-
verb
|
|
83
|
+
entityId,
|
|
84
|
+
verb,
|
|
85
|
+
entityType
|
|
71
86
|
})
|
|
72
87
|
]
|
|
73
88
|
}
|
|
74
89
|
});
|
|
75
|
-
jest.mock('../utils/
|
|
76
|
-
|
|
90
|
+
jest.mock('../utils/getPreviousReleaseEntity', ()=>({
|
|
91
|
+
getPreviousReleaseEntity: jest.fn()
|
|
77
92
|
}));
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
code: 'en-US'
|
|
83
|
-
}
|
|
84
|
-
],
|
|
85
|
-
isActiveReleaseLoading: false,
|
|
86
|
-
releaseVersionMap: new Map(),
|
|
87
|
-
releases: {
|
|
88
|
-
items: []
|
|
89
|
-
}
|
|
90
|
-
};
|
|
93
|
+
const ENTITY_TYPES = [
|
|
94
|
+
'Entry',
|
|
95
|
+
'Asset'
|
|
96
|
+
];
|
|
91
97
|
describe('useActiveReleaseLocalesStatuses', ()=>{
|
|
92
98
|
beforeEach(()=>{
|
|
93
99
|
jest.clearAllMocks();
|
|
94
100
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
previousEntryVersion: {
|
|
103
|
-
sys: {
|
|
104
|
-
fieldStatus: {
|
|
105
|
-
'*': {
|
|
106
|
-
'en-US': 'draft'
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
113
|
-
...baseParams,
|
|
114
|
-
activeRelease: createEntryBasedRelease(),
|
|
115
|
-
currentEntryDraft: buildEntry('draft')
|
|
116
|
-
}));
|
|
117
|
-
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
118
|
-
variant: 'positive',
|
|
119
|
-
status: 'willPublish',
|
|
120
|
-
label: 'Will publish',
|
|
121
|
-
locale: {
|
|
101
|
+
ENTITY_TYPES.forEach((entityType)=>{
|
|
102
|
+
const entityId = entityType === 'Entry' ? 'entry-1' : 'asset-1';
|
|
103
|
+
const baseParams = {
|
|
104
|
+
entityId,
|
|
105
|
+
entityType,
|
|
106
|
+
locales: [
|
|
107
|
+
{
|
|
122
108
|
code: 'en-US'
|
|
123
109
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
110
|
+
],
|
|
111
|
+
isActiveReleaseLoading: false,
|
|
112
|
+
releaseVersionMap: new Map(),
|
|
113
|
+
releases: {
|
|
114
|
+
items: []
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
describe(`${entityType} with entry based publishing`, ()=>{
|
|
118
|
+
it('returns Will publish status when active release has publish action', ()=>{
|
|
119
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
120
|
+
previousReleaseEntity: createEntryBasedReleaseEntity({
|
|
121
|
+
entityId,
|
|
122
|
+
action: 'unpublish',
|
|
123
|
+
entityType
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
127
|
+
...baseParams,
|
|
128
|
+
activeRelease: createEntryBasedRelease({
|
|
129
|
+
entityId,
|
|
130
|
+
entityType
|
|
131
|
+
}),
|
|
132
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
133
|
+
}));
|
|
134
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
135
|
+
variant: 'positive',
|
|
136
|
+
status: 'willPublish',
|
|
137
|
+
label: 'Will publish',
|
|
138
|
+
locale: {
|
|
139
|
+
code: 'en-US'
|
|
139
140
|
}
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
143
|
-
...baseParams,
|
|
144
|
-
activeRelease: createEntryBasedRelease({
|
|
145
|
-
action: 'unpublish'
|
|
146
|
-
}),
|
|
147
|
-
currentEntryDraft: buildEntry('published')
|
|
148
|
-
}));
|
|
149
|
-
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
150
|
-
variant: 'warning',
|
|
151
|
-
status: 'becomesDraft',
|
|
152
|
-
label: 'Becomes draft',
|
|
153
|
-
locale: {
|
|
154
|
-
code: 'en-US'
|
|
155
|
-
}
|
|
141
|
+
});
|
|
156
142
|
});
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
143
|
+
it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
|
|
144
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
145
|
+
previousReleaseEntity: createEntryBasedReleaseEntity({
|
|
146
|
+
entityId,
|
|
147
|
+
action: 'publish',
|
|
148
|
+
entityType
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
152
|
+
...baseParams,
|
|
153
|
+
activeRelease: createEntryBasedRelease({
|
|
154
|
+
action: 'unpublish',
|
|
155
|
+
entityId,
|
|
156
|
+
entityType
|
|
157
|
+
}),
|
|
158
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('published') : buildAsset('published')
|
|
159
|
+
}));
|
|
160
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
161
|
+
variant: 'warning',
|
|
162
|
+
status: 'becomesDraft',
|
|
163
|
+
label: 'Becomes draft',
|
|
164
|
+
locale: {
|
|
165
|
+
code: 'en-US'
|
|
170
166
|
}
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
174
|
-
...baseParams,
|
|
175
|
-
activeRelease: createEntryBasedRelease({
|
|
176
|
-
action: 'unpublish'
|
|
177
|
-
}),
|
|
178
|
-
currentEntryDraft: buildEntry('draft')
|
|
179
|
-
}));
|
|
180
|
-
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
181
|
-
variant: 'secondary',
|
|
182
|
-
status: 'remainsDraft',
|
|
183
|
-
label: 'Remains draft',
|
|
184
|
-
locale: {
|
|
185
|
-
code: 'en-US'
|
|
186
|
-
}
|
|
167
|
+
});
|
|
187
168
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
});
|
|
212
|
-
describe('with locale based publishing', ()=>{
|
|
213
|
-
it('returns Will publish status when active release has publish action', ()=>{
|
|
214
|
-
_getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
|
|
215
|
-
previousReleaseEntity: createLocaleBasedReleaseEntity({
|
|
216
|
-
entryId: 'entry-1',
|
|
217
|
-
verb: 'remove'
|
|
218
|
-
}),
|
|
219
|
-
previousEntryVersion: {
|
|
220
|
-
sys: {
|
|
221
|
-
fieldStatus: {
|
|
222
|
-
'*': {
|
|
223
|
-
'en-US': 'draft'
|
|
224
|
-
}
|
|
225
|
-
}
|
|
169
|
+
it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
|
|
170
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
171
|
+
previousReleaseEntity: createEntryBasedReleaseEntity({
|
|
172
|
+
action: 'unpublish',
|
|
173
|
+
entityType,
|
|
174
|
+
entityId
|
|
175
|
+
})
|
|
176
|
+
});
|
|
177
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
178
|
+
...baseParams,
|
|
179
|
+
activeRelease: createEntryBasedRelease({
|
|
180
|
+
action: 'unpublish',
|
|
181
|
+
entityId,
|
|
182
|
+
entityType
|
|
183
|
+
}),
|
|
184
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
185
|
+
}));
|
|
186
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
187
|
+
variant: 'secondary',
|
|
188
|
+
status: 'remainsDraft',
|
|
189
|
+
label: 'Remains draft',
|
|
190
|
+
locale: {
|
|
191
|
+
code: 'en-US'
|
|
226
192
|
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
230
|
-
...baseParams,
|
|
231
|
-
activeRelease: createLocaleBasedRelease(),
|
|
232
|
-
currentEntryDraft: buildEntry('draft')
|
|
233
|
-
}));
|
|
234
|
-
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
235
|
-
variant: 'positive',
|
|
236
|
-
status: 'willPublish',
|
|
237
|
-
label: 'Will publish',
|
|
238
|
-
locale: {
|
|
239
|
-
code: 'en-US'
|
|
240
|
-
}
|
|
193
|
+
});
|
|
241
194
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
195
|
+
it('returns Not in release status when entity is not in the release', ()=>{
|
|
196
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
197
|
+
previousReleaseEntity: undefined
|
|
198
|
+
});
|
|
199
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
200
|
+
...baseParams,
|
|
201
|
+
activeRelease: createEntryBasedRelease({
|
|
202
|
+
entityId: entityType === 'Entry' ? 'entry-2' : 'asset-2',
|
|
203
|
+
action: 'publish',
|
|
204
|
+
entityType
|
|
205
|
+
}),
|
|
206
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
207
|
+
}));
|
|
208
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
209
|
+
variant: 'secondary',
|
|
210
|
+
status: 'notInRelease',
|
|
211
|
+
label: 'Not in release',
|
|
212
|
+
locale: {
|
|
213
|
+
code: 'en-US'
|
|
256
214
|
}
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
260
|
-
...baseParams,
|
|
261
|
-
activeRelease: createLocaleBasedRelease({
|
|
262
|
-
verb: 'remove'
|
|
263
|
-
}),
|
|
264
|
-
currentEntryDraft: buildEntry('published')
|
|
265
|
-
}));
|
|
266
|
-
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
267
|
-
variant: 'warning',
|
|
268
|
-
status: 'becomesDraft',
|
|
269
|
-
label: 'Becomes draft',
|
|
270
|
-
locale: {
|
|
271
|
-
code: 'en-US'
|
|
272
|
-
}
|
|
215
|
+
});
|
|
273
216
|
});
|
|
274
217
|
});
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
218
|
+
describe(`${entityType} with locale based publishing`, ()=>{
|
|
219
|
+
it('returns Will publish status when active release has publish action', ()=>{
|
|
220
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
221
|
+
previousReleaseEntity: createLocaleBasedReleaseEntity({
|
|
222
|
+
entityId,
|
|
223
|
+
verb: 'remove',
|
|
224
|
+
entityType
|
|
225
|
+
})
|
|
226
|
+
});
|
|
227
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
228
|
+
...baseParams,
|
|
229
|
+
activeRelease: createLocaleBasedRelease({
|
|
230
|
+
entityId,
|
|
231
|
+
entityType
|
|
232
|
+
}),
|
|
233
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
234
|
+
}));
|
|
235
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
236
|
+
variant: 'positive',
|
|
237
|
+
status: 'willPublish',
|
|
238
|
+
label: 'Will publish',
|
|
239
|
+
locale: {
|
|
240
|
+
code: 'en-US'
|
|
287
241
|
}
|
|
288
|
-
}
|
|
242
|
+
});
|
|
289
243
|
});
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
244
|
+
it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
|
|
245
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
246
|
+
previousReleaseEntity: createLocaleBasedReleaseEntity({
|
|
247
|
+
entityId: 'entry-1',
|
|
248
|
+
verb: 'add',
|
|
249
|
+
entityType
|
|
250
|
+
})
|
|
251
|
+
});
|
|
252
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
253
|
+
...baseParams,
|
|
254
|
+
activeRelease: createLocaleBasedRelease({
|
|
255
|
+
verb: 'remove',
|
|
256
|
+
entityId,
|
|
257
|
+
entityType
|
|
258
|
+
}),
|
|
259
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('published') : buildAsset('published')
|
|
260
|
+
}));
|
|
261
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
262
|
+
variant: 'warning',
|
|
263
|
+
status: 'becomesDraft',
|
|
264
|
+
label: 'Becomes draft',
|
|
265
|
+
locale: {
|
|
266
|
+
code: 'en-US'
|
|
267
|
+
}
|
|
268
|
+
});
|
|
304
269
|
});
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
270
|
+
it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
|
|
271
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
272
|
+
previousReleaseEntity: createLocaleBasedReleaseEntity({
|
|
273
|
+
verb: 'remove',
|
|
274
|
+
entityId,
|
|
275
|
+
entityType
|
|
276
|
+
})
|
|
277
|
+
});
|
|
278
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
279
|
+
...baseParams,
|
|
280
|
+
activeRelease: createLocaleBasedRelease({
|
|
281
|
+
verb: 'remove',
|
|
282
|
+
entityId,
|
|
283
|
+
entityType
|
|
284
|
+
}),
|
|
285
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
286
|
+
}));
|
|
287
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
288
|
+
variant: 'secondary',
|
|
289
|
+
status: 'remainsDraft',
|
|
290
|
+
label: 'Remains draft',
|
|
291
|
+
locale: {
|
|
292
|
+
code: 'en-US'
|
|
293
|
+
}
|
|
294
|
+
});
|
|
310
295
|
});
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
296
|
+
it('returns Not in release status when entry is not in the release', ()=>{
|
|
297
|
+
_getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
|
|
298
|
+
previousReleaseEntity: undefined
|
|
299
|
+
});
|
|
300
|
+
const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
|
|
301
|
+
...baseParams,
|
|
302
|
+
activeRelease: createLocaleBasedRelease({
|
|
303
|
+
entityId: entityType === 'Entry' ? 'entry-2' : 'asset-2',
|
|
304
|
+
entityType,
|
|
305
|
+
verb: 'add'
|
|
306
|
+
}),
|
|
307
|
+
currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
|
|
308
|
+
}));
|
|
309
|
+
expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
|
|
310
|
+
variant: 'secondary',
|
|
311
|
+
status: 'notInRelease',
|
|
312
|
+
label: 'Not in release',
|
|
313
|
+
locale: {
|
|
314
|
+
code: 'en-US'
|
|
315
|
+
}
|
|
316
|
+
});
|
|
326
317
|
});
|
|
327
318
|
});
|
|
328
319
|
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -111,7 +111,7 @@ _export_star(require("./hooks/useLocalePublishStatus"), exports);
|
|
|
111
111
|
_export_star(require("./LocalePublishingEntityStatusBadge"), exports);
|
|
112
112
|
_export_star(require("./ReleaseEntityStatusBadge"), exports);
|
|
113
113
|
_export_star(require("./utils/determineReleaseAction"), exports);
|
|
114
|
-
_export_star(require("./utils/
|
|
114
|
+
_export_star(require("./utils/getEntityReleaseStatus"), exports);
|
|
115
115
|
_export_star(require("./utils/parseReleaseParameters"), exports);
|
|
116
116
|
function _export_star(from, to) {
|
|
117
117
|
Object.keys(from).forEach(function(k) {
|