@contentful/field-editor-shared 2.12.2 → 2.13.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/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +5 -14
- package/dist/cjs/ReleaseEntityStatusBadge/constants.js +7 -0
- package/dist/cjs/hooks/useLocalePublishStatus.js +7 -22
- package/dist/cjs/hooks/useReleaseStatus.js +137 -0
- package/dist/cjs/hooks/{useActiveReleaseLocalesStatuses.spec.js → useReleaseStatus.spec.js} +91 -99
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/utils/sanitizeLocales.js +20 -0
- package/dist/esm/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +6 -15
- package/dist/esm/ReleaseEntityStatusBadge/constants.js +7 -0
- package/dist/esm/hooks/useLocalePublishStatus.js +7 -22
- package/dist/esm/hooks/useReleaseStatus.js +127 -0
- package/dist/esm/hooks/{useActiveReleaseLocalesStatuses.spec.js → useReleaseStatus.spec.js} +91 -99
- package/dist/esm/index.js +1 -2
- package/dist/esm/utils/sanitizeLocales.js +10 -0
- package/dist/types/ReleaseEntityStatusBadge/ReleaseEntityStatusLocalesList.d.ts +2 -2
- package/dist/types/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.d.ts +3 -3
- package/dist/types/ReleaseEntityStatusBadge/constants.d.ts +7 -0
- package/dist/types/hooks/useLocalePublishStatus.d.ts +4 -2
- package/dist/types/hooks/useReleaseStatus.d.ts +14 -0
- package/dist/types/index.d.ts +1 -2
- package/dist/types/types.d.ts +3 -3
- package/dist/types/utils/sanitizeLocales.d.ts +4 -0
- package/package.json +4 -4
- package/dist/cjs/hooks/useActiveReleaseLocalesStatuses.js +0 -112
- package/dist/cjs/utils/getPreviousReleaseEntity.js +0 -32
- package/dist/cjs/utils/parseReleaseParameters.js +0 -42
- package/dist/esm/hooks/useActiveReleaseLocalesStatuses.js +0 -102
- package/dist/esm/utils/getPreviousReleaseEntity.js +0 -22
- package/dist/esm/utils/parseReleaseParameters.js +0 -32
- package/dist/types/hooks/useActiveReleaseLocalesStatuses.d.ts +0 -14
- package/dist/types/utils/getPreviousReleaseEntity.d.ts +0 -12
- package/dist/types/utils/parseReleaseParameters.d.ts +0 -11
- /package/dist/types/hooks/{useActiveReleaseLocalesStatuses.spec.d.ts → useReleaseStatus.spec.d.ts} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LocalesAPI } from '@contentful/app-sdk';
|
|
2
|
+
import type { AssetProps, EntryProps, LocaleProps, ReleaseProps } from 'contentful-management/types';
|
|
3
|
+
import type { ReleaseAction, ReleaseV2Props } from '../types';
|
|
4
|
+
type UseActiveReleaseLocalesStatuses = {
|
|
5
|
+
entity?: EntryProps | AssetProps;
|
|
6
|
+
locales: LocaleProps[] | LocalesAPI;
|
|
7
|
+
release?: ReleaseProps | ReleaseV2Props;
|
|
8
|
+
previousEntityOnTimeline?: EntryProps | AssetProps;
|
|
9
|
+
};
|
|
10
|
+
export declare function useReleaseStatus({ entity, release, locales, previousEntityOnTimeline, }: UseActiveReleaseLocalesStatuses): {
|
|
11
|
+
releaseStatusMap: Map<any, any>;
|
|
12
|
+
releaseAction: ReleaseAction | undefined;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,10 +15,9 @@ export { shortenStorageUnit, toLocaleString } from './utils/shortenStorageUnit';
|
|
|
15
15
|
export type { FieldConnectorChildProps } from './FieldConnector';
|
|
16
16
|
export * from './types';
|
|
17
17
|
export * from './hooks/useActiveLocales';
|
|
18
|
-
export * from './hooks/
|
|
18
|
+
export * from './hooks/useReleaseStatus';
|
|
19
19
|
export * from './hooks/useLocalePublishStatus';
|
|
20
20
|
export * from './LocalePublishingEntityStatusBadge';
|
|
21
21
|
export * from './ReleaseEntityStatusBadge';
|
|
22
22
|
export * from './utils/determineReleaseAction';
|
|
23
23
|
export * from './utils/getEntityReleaseStatus';
|
|
24
|
-
export * from './utils/parseReleaseParameters';
|
package/dist/types/types.d.ts
CHANGED
|
@@ -59,11 +59,11 @@ export type ReleaseV2Props = Omit<ReleaseProps, 'entities' | 'sys'> & {
|
|
|
59
59
|
metadata?: ReleaseMetadataV2;
|
|
60
60
|
};
|
|
61
61
|
export type ReleaseAction = 'publish' | 'unpublish' | 'not-in-release';
|
|
62
|
-
export type ReleaseEntityStatus = 'willPublish' | 'becomesDraft' | 'remainsDraft' | 'notInRelease';
|
|
62
|
+
export type ReleaseEntityStatus = 'willPublish' | 'becomesDraft' | 'remainsDraft' | 'notInRelease' | 'published';
|
|
63
63
|
export type ReleaseLocalesStatus = {
|
|
64
64
|
status: ReleaseEntityStatus;
|
|
65
65
|
variant: BadgeVariant;
|
|
66
66
|
label: string;
|
|
67
|
-
locale: LocaleProps
|
|
67
|
+
locale: Pick<LocaleProps, 'code' | 'default' | 'name'>;
|
|
68
68
|
};
|
|
69
|
-
export type
|
|
69
|
+
export type ReleaseStatusMap = Map<string, ReleaseLocalesStatus>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LocalesAPI } from '@contentful/app-sdk';
|
|
2
|
+
import type { LocaleProps } from 'contentful-management';
|
|
3
|
+
export type SanitizedLocale = Pick<LocaleProps, 'code' | 'default' | 'name'>;
|
|
4
|
+
export declare function sanitizeLocales(locales: Pick<LocalesAPI, 'available' | 'default' | 'names'> | LocaleProps[]): SanitizedLocale[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/field-editor-shared",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -36,13 +36,13 @@
|
|
|
36
36
|
"tsc": "tsc -p ./ --noEmit"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@contentful/app-sdk": "^4.
|
|
39
|
+
"@contentful/app-sdk": "^4.42.0",
|
|
40
40
|
"@contentful/field-editor-test-utils": "^1.6.2",
|
|
41
41
|
"@lingui/core": "5.3.0",
|
|
42
42
|
"@testing-library/react": "16.3.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@contentful/f36-components": "^5.
|
|
45
|
+
"@contentful/f36-components": "^5.4.1",
|
|
46
46
|
"@contentful/f36-note": "^5.1.0",
|
|
47
47
|
"@contentful/f36-tokens": "^5.1.0",
|
|
48
48
|
"contentful-management": "^11.45.1",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"registry": "https://npm.pkg.github.com/"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "6bae62839ecfbd1945a60050b51eba95a2594388"
|
|
62
62
|
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "useActiveReleaseLocalesStatuses", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return useActiveReleaseLocalesStatuses;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _react = require("react");
|
|
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,
|
|
17
|
-
releaseVersionMap,
|
|
18
|
-
activeRelease,
|
|
19
|
-
releases
|
|
20
|
-
}).previousReleaseEntity, [
|
|
21
|
-
entityId,
|
|
22
|
-
entityType,
|
|
23
|
-
releaseVersionMap,
|
|
24
|
-
activeRelease,
|
|
25
|
-
releases
|
|
26
|
-
]);
|
|
27
|
-
const activeReleaseReleaseEntity = (0, _react.useMemo)(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id === entityId && entity.entity.sys.linkType === entityType), [
|
|
28
|
-
activeRelease?.entities.items,
|
|
29
|
-
entityId,
|
|
30
|
-
entityType
|
|
31
|
-
]);
|
|
32
|
-
const getLocaleStatus = (0, _react.useCallback)((localeCode)=>{
|
|
33
|
-
if (!activeReleaseReleaseEntity) {
|
|
34
|
-
return 'Not in release';
|
|
35
|
-
}
|
|
36
|
-
return activeReleaseReleaseEntity?.action === 'publish' || activeReleaseReleaseEntity?.add?.fields['*'].includes(localeCode) ? 'published' : 'draft';
|
|
37
|
-
}, [
|
|
38
|
-
activeReleaseReleaseEntity
|
|
39
|
-
]);
|
|
40
|
-
const releaseLocalesStatusMap = (0, _react.useMemo)(()=>{
|
|
41
|
-
return locales.reduce((acc, locale)=>{
|
|
42
|
-
acc.set(locale.code, {
|
|
43
|
-
variant: 'secondary',
|
|
44
|
-
status: 'remainsDraft',
|
|
45
|
-
label: 'Remains draft',
|
|
46
|
-
locale
|
|
47
|
-
});
|
|
48
|
-
if (!activeReleaseReleaseEntity) {
|
|
49
|
-
acc.set(locale.code, {
|
|
50
|
-
variant: 'secondary',
|
|
51
|
-
status: 'notInRelease',
|
|
52
|
-
label: 'Not in release',
|
|
53
|
-
locale
|
|
54
|
-
});
|
|
55
|
-
return acc;
|
|
56
|
-
}
|
|
57
|
-
if (getLocaleStatus(locale.code) === 'draft') {
|
|
58
|
-
if (currentEntityDraft?.sys.fieldStatus) {
|
|
59
|
-
const previousStatus = currentEntityDraft.sys.fieldStatus['*'][locale.code];
|
|
60
|
-
if (previousStatus === 'published' || previousStatus === 'changed') {
|
|
61
|
-
acc.set(locale.code, {
|
|
62
|
-
status: 'becomesDraft',
|
|
63
|
-
variant: 'warning',
|
|
64
|
-
label: 'Becomes draft',
|
|
65
|
-
locale
|
|
66
|
-
});
|
|
67
|
-
} else {
|
|
68
|
-
acc.set(locale.code, {
|
|
69
|
-
status: 'remainsDraft',
|
|
70
|
-
variant: 'secondary',
|
|
71
|
-
label: 'Remains draft',
|
|
72
|
-
locale
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
} else if (previousReleaseEntity) {
|
|
76
|
-
if (previousReleaseEntity.action === 'publish' || previousReleaseEntity.add.fields['*'].includes(locale.code)) {
|
|
77
|
-
acc.set(locale.code, {
|
|
78
|
-
status: 'becomesDraft',
|
|
79
|
-
variant: 'warning',
|
|
80
|
-
label: 'Becomes draft',
|
|
81
|
-
locale
|
|
82
|
-
});
|
|
83
|
-
} else {
|
|
84
|
-
acc.set(locale.code, {
|
|
85
|
-
status: 'remainsDraft',
|
|
86
|
-
variant: 'secondary',
|
|
87
|
-
label: 'Remains draft',
|
|
88
|
-
locale
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
} else if (getLocaleStatus(locale.code) === 'published') {
|
|
93
|
-
acc.set(locale.code, {
|
|
94
|
-
variant: 'positive',
|
|
95
|
-
status: 'willPublish',
|
|
96
|
-
label: 'Will publish',
|
|
97
|
-
locale
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return acc;
|
|
101
|
-
}, new Map());
|
|
102
|
-
}, [
|
|
103
|
-
locales,
|
|
104
|
-
activeReleaseReleaseEntity,
|
|
105
|
-
getLocaleStatus,
|
|
106
|
-
currentEntityDraft?.sys.fieldStatus,
|
|
107
|
-
previousReleaseEntity
|
|
108
|
-
]);
|
|
109
|
-
return {
|
|
110
|
-
releaseLocalesStatusMap
|
|
111
|
-
};
|
|
112
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getPreviousReleaseEntity", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getPreviousReleaseEntity;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _datefns = require("date-fns");
|
|
12
|
-
function getPreviousReleaseEntity({ entityId, entityType, releaseVersionMap, activeRelease, releases }) {
|
|
13
|
-
const orderedScheduledReleases = releases?.items.filter((r)=>r.startDate).sort((a, b)=>(0, _datefns.compareAsc)(new Date(a.startDate), new Date(b.startDate)));
|
|
14
|
-
const indexOfActive = orderedScheduledReleases?.findIndex((r)=>r.sys.id === activeRelease?.sys.id);
|
|
15
|
-
let previousRelease;
|
|
16
|
-
let previousReleaseEntity;
|
|
17
|
-
if (indexOfActive && indexOfActive > 0) {
|
|
18
|
-
for(let i = indexOfActive - 1; i >= 0; i--){
|
|
19
|
-
const release = orderedScheduledReleases[i];
|
|
20
|
-
const action = releaseVersionMap.get(entityId)?.get(release.sys.id);
|
|
21
|
-
if (action !== 'not-in-release') {
|
|
22
|
-
previousRelease = release;
|
|
23
|
-
previousReleaseEntity = release.entities.items.find((e)=>e.entity.sys.id === entityId && e.entity.sys.linkType === entityType);
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
previousRelease,
|
|
30
|
-
previousReleaseEntity
|
|
31
|
-
};
|
|
32
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "parseReleaseParams", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return parseReleaseParams;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function parseReleaseParams(raw) {
|
|
12
|
-
let parsedRaw;
|
|
13
|
-
if (!raw) {
|
|
14
|
-
return {
|
|
15
|
-
releaseVersionMap: new Map(),
|
|
16
|
-
locales: [],
|
|
17
|
-
activeRelease: undefined,
|
|
18
|
-
isActiveReleaseLoading: false,
|
|
19
|
-
releases: undefined
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
try {
|
|
23
|
-
parsedRaw = JSON.parse(raw);
|
|
24
|
-
} catch (e) {
|
|
25
|
-
throw new Error('Failed to parse release parameters: invalid JSON');
|
|
26
|
-
}
|
|
27
|
-
const releaseVersionMap = new Map();
|
|
28
|
-
for (const [entryId, innerObj] of Object.entries(parsedRaw.releaseVersionMap)){
|
|
29
|
-
const innerMap = new Map();
|
|
30
|
-
for (const [localeKey, actionData] of Object.entries(innerObj)){
|
|
31
|
-
innerMap.set(localeKey, actionData);
|
|
32
|
-
}
|
|
33
|
-
releaseVersionMap.set(entryId, innerMap);
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
releaseVersionMap,
|
|
37
|
-
locales: parsedRaw.locales,
|
|
38
|
-
activeRelease: parsedRaw.activeRelease,
|
|
39
|
-
isActiveReleaseLoading: parsedRaw.isActiveReleaseLoading,
|
|
40
|
-
releases: parsedRaw.releases
|
|
41
|
-
};
|
|
42
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { useCallback, useMemo } from 'react';
|
|
2
|
-
import { getPreviousReleaseEntity } from '../utils/getPreviousReleaseEntity';
|
|
3
|
-
export const useActiveReleaseLocalesStatuses = ({ currentEntityDraft, entityId, entityType, releaseVersionMap, locales, activeRelease, releases })=>{
|
|
4
|
-
const previousReleaseEntity = useMemo(()=>getPreviousReleaseEntity({
|
|
5
|
-
entityId,
|
|
6
|
-
entityType,
|
|
7
|
-
releaseVersionMap,
|
|
8
|
-
activeRelease,
|
|
9
|
-
releases
|
|
10
|
-
}).previousReleaseEntity, [
|
|
11
|
-
entityId,
|
|
12
|
-
entityType,
|
|
13
|
-
releaseVersionMap,
|
|
14
|
-
activeRelease,
|
|
15
|
-
releases
|
|
16
|
-
]);
|
|
17
|
-
const activeReleaseReleaseEntity = useMemo(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id === entityId && entity.entity.sys.linkType === entityType), [
|
|
18
|
-
activeRelease?.entities.items,
|
|
19
|
-
entityId,
|
|
20
|
-
entityType
|
|
21
|
-
]);
|
|
22
|
-
const getLocaleStatus = useCallback((localeCode)=>{
|
|
23
|
-
if (!activeReleaseReleaseEntity) {
|
|
24
|
-
return 'Not in release';
|
|
25
|
-
}
|
|
26
|
-
return activeReleaseReleaseEntity?.action === 'publish' || activeReleaseReleaseEntity?.add?.fields['*'].includes(localeCode) ? 'published' : 'draft';
|
|
27
|
-
}, [
|
|
28
|
-
activeReleaseReleaseEntity
|
|
29
|
-
]);
|
|
30
|
-
const releaseLocalesStatusMap = useMemo(()=>{
|
|
31
|
-
return locales.reduce((acc, locale)=>{
|
|
32
|
-
acc.set(locale.code, {
|
|
33
|
-
variant: 'secondary',
|
|
34
|
-
status: 'remainsDraft',
|
|
35
|
-
label: 'Remains draft',
|
|
36
|
-
locale
|
|
37
|
-
});
|
|
38
|
-
if (!activeReleaseReleaseEntity) {
|
|
39
|
-
acc.set(locale.code, {
|
|
40
|
-
variant: 'secondary',
|
|
41
|
-
status: 'notInRelease',
|
|
42
|
-
label: 'Not in release',
|
|
43
|
-
locale
|
|
44
|
-
});
|
|
45
|
-
return acc;
|
|
46
|
-
}
|
|
47
|
-
if (getLocaleStatus(locale.code) === 'draft') {
|
|
48
|
-
if (currentEntityDraft?.sys.fieldStatus) {
|
|
49
|
-
const previousStatus = currentEntityDraft.sys.fieldStatus['*'][locale.code];
|
|
50
|
-
if (previousStatus === 'published' || previousStatus === 'changed') {
|
|
51
|
-
acc.set(locale.code, {
|
|
52
|
-
status: 'becomesDraft',
|
|
53
|
-
variant: 'warning',
|
|
54
|
-
label: 'Becomes draft',
|
|
55
|
-
locale
|
|
56
|
-
});
|
|
57
|
-
} else {
|
|
58
|
-
acc.set(locale.code, {
|
|
59
|
-
status: 'remainsDraft',
|
|
60
|
-
variant: 'secondary',
|
|
61
|
-
label: 'Remains draft',
|
|
62
|
-
locale
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
} else if (previousReleaseEntity) {
|
|
66
|
-
if (previousReleaseEntity.action === 'publish' || previousReleaseEntity.add.fields['*'].includes(locale.code)) {
|
|
67
|
-
acc.set(locale.code, {
|
|
68
|
-
status: 'becomesDraft',
|
|
69
|
-
variant: 'warning',
|
|
70
|
-
label: 'Becomes draft',
|
|
71
|
-
locale
|
|
72
|
-
});
|
|
73
|
-
} else {
|
|
74
|
-
acc.set(locale.code, {
|
|
75
|
-
status: 'remainsDraft',
|
|
76
|
-
variant: 'secondary',
|
|
77
|
-
label: 'Remains draft',
|
|
78
|
-
locale
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
} else if (getLocaleStatus(locale.code) === 'published') {
|
|
83
|
-
acc.set(locale.code, {
|
|
84
|
-
variant: 'positive',
|
|
85
|
-
status: 'willPublish',
|
|
86
|
-
label: 'Will publish',
|
|
87
|
-
locale
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
return acc;
|
|
91
|
-
}, new Map());
|
|
92
|
-
}, [
|
|
93
|
-
locales,
|
|
94
|
-
activeReleaseReleaseEntity,
|
|
95
|
-
getLocaleStatus,
|
|
96
|
-
currentEntityDraft?.sys.fieldStatus,
|
|
97
|
-
previousReleaseEntity
|
|
98
|
-
]);
|
|
99
|
-
return {
|
|
100
|
-
releaseLocalesStatusMap
|
|
101
|
-
};
|
|
102
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { compareAsc } from 'date-fns';
|
|
2
|
-
export function getPreviousReleaseEntity({ entityId, entityType, releaseVersionMap, activeRelease, releases }) {
|
|
3
|
-
const orderedScheduledReleases = releases?.items.filter((r)=>r.startDate).sort((a, b)=>compareAsc(new Date(a.startDate), new Date(b.startDate)));
|
|
4
|
-
const indexOfActive = orderedScheduledReleases?.findIndex((r)=>r.sys.id === activeRelease?.sys.id);
|
|
5
|
-
let previousRelease;
|
|
6
|
-
let previousReleaseEntity;
|
|
7
|
-
if (indexOfActive && indexOfActive > 0) {
|
|
8
|
-
for(let i = indexOfActive - 1; i >= 0; i--){
|
|
9
|
-
const release = orderedScheduledReleases[i];
|
|
10
|
-
const action = releaseVersionMap.get(entityId)?.get(release.sys.id);
|
|
11
|
-
if (action !== 'not-in-release') {
|
|
12
|
-
previousRelease = release;
|
|
13
|
-
previousReleaseEntity = release.entities.items.find((e)=>e.entity.sys.id === entityId && e.entity.sys.linkType === entityType);
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
previousRelease,
|
|
20
|
-
previousReleaseEntity
|
|
21
|
-
};
|
|
22
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export function parseReleaseParams(raw) {
|
|
2
|
-
let parsedRaw;
|
|
3
|
-
if (!raw) {
|
|
4
|
-
return {
|
|
5
|
-
releaseVersionMap: new Map(),
|
|
6
|
-
locales: [],
|
|
7
|
-
activeRelease: undefined,
|
|
8
|
-
isActiveReleaseLoading: false,
|
|
9
|
-
releases: undefined
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
try {
|
|
13
|
-
parsedRaw = JSON.parse(raw);
|
|
14
|
-
} catch (e) {
|
|
15
|
-
throw new Error('Failed to parse release parameters: invalid JSON');
|
|
16
|
-
}
|
|
17
|
-
const releaseVersionMap = new Map();
|
|
18
|
-
for (const [entryId, innerObj] of Object.entries(parsedRaw.releaseVersionMap)){
|
|
19
|
-
const innerMap = new Map();
|
|
20
|
-
for (const [localeKey, actionData] of Object.entries(innerObj)){
|
|
21
|
-
innerMap.set(localeKey, actionData);
|
|
22
|
-
}
|
|
23
|
-
releaseVersionMap.set(entryId, innerMap);
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
releaseVersionMap,
|
|
27
|
-
locales: parsedRaw.locales,
|
|
28
|
-
activeRelease: parsedRaw.activeRelease,
|
|
29
|
-
isActiveReleaseLoading: parsedRaw.isActiveReleaseLoading,
|
|
30
|
-
releases: parsedRaw.releases
|
|
31
|
-
};
|
|
32
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ReleaseAction, ReleaseLocalesStatusMap } from '@contentful/field-editor-shared';
|
|
2
|
-
import type { AssetProps, CollectionProp, EntryProps, LocaleProps } from 'contentful-management/types';
|
|
3
|
-
import type { ReleaseV2Props } from '../types';
|
|
4
|
-
export declare const useActiveReleaseLocalesStatuses: ({ currentEntityDraft, entityId, entityType, releaseVersionMap, locales, activeRelease, releases, }: {
|
|
5
|
-
currentEntityDraft: EntryProps | AssetProps;
|
|
6
|
-
entityId: string;
|
|
7
|
-
entityType: 'Entry' | 'Asset';
|
|
8
|
-
releaseVersionMap: Map<string, Map<string, ReleaseAction>>;
|
|
9
|
-
locales: LocaleProps[];
|
|
10
|
-
activeRelease: ReleaseV2Props | undefined;
|
|
11
|
-
releases: CollectionProp<ReleaseV2Props> | undefined;
|
|
12
|
-
}) => {
|
|
13
|
-
releaseLocalesStatusMap: ReleaseLocalesStatusMap;
|
|
14
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { CollectionProp } from 'contentful-management/types';
|
|
2
|
-
import type { ReleaseAction, ReleaseV2Entity, ReleaseV2EntityWithLocales, ReleaseV2Props } from '../types';
|
|
3
|
-
export declare function getPreviousReleaseEntity({ entityId, entityType, releaseVersionMap, activeRelease, releases, }: {
|
|
4
|
-
entityId: string;
|
|
5
|
-
entityType: 'Entry' | 'Asset';
|
|
6
|
-
releaseVersionMap: Map<string, Map<string, ReleaseAction>>;
|
|
7
|
-
activeRelease: ReleaseV2Props | undefined;
|
|
8
|
-
releases: CollectionProp<ReleaseV2Props> | undefined;
|
|
9
|
-
}): {
|
|
10
|
-
previousReleaseEntity: ReleaseV2Entity | ReleaseV2EntityWithLocales | undefined;
|
|
11
|
-
previousRelease: ReleaseV2Props | undefined;
|
|
12
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ReleaseV2Props } from '@contentful/field-editor-shared';
|
|
2
|
-
import type { CollectionProp, LocaleProps } from 'contentful-management';
|
|
3
|
-
import type { ReleaseAction } from '../types';
|
|
4
|
-
export type ParsedReleaseParams = {
|
|
5
|
-
releaseVersionMap: Map<string, Map<string, ReleaseAction>>;
|
|
6
|
-
locales: LocaleProps[];
|
|
7
|
-
activeRelease: ReleaseV2Props | undefined;
|
|
8
|
-
isActiveReleaseLoading: boolean;
|
|
9
|
-
releases: CollectionProp<ReleaseV2Props> | undefined;
|
|
10
|
-
};
|
|
11
|
-
export declare function parseReleaseParams(raw: string | undefined): ParsedReleaseParams;
|
/package/dist/types/hooks/{useActiveReleaseLocalesStatuses.spec.d.ts → useReleaseStatus.spec.d.ts}
RENAMED
|
File without changes
|