@contentful/field-editor-shared 2.3.1 → 2.4.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/hooks/useActiveLocales.js +45 -0
- package/dist/cjs/hooks/useLocalePublishStatus.spec.js +5 -3
- package/dist/cjs/index.js +1 -0
- package/dist/esm/hooks/useActiveLocales.js +35 -0
- package/dist/esm/hooks/useLocalePublishStatus.spec.js +5 -3
- package/dist/esm/index.js +1 -0
- package/dist/types/hooks/useActiveLocales.d.ts +8 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/entityHelpers.d.ts +4 -11
- package/package.json +3 -3
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useActiveLocales", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useActiveLocales;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
function useActiveLocales(sdk) {
|
|
13
|
+
const [activeLocales, setActiveLocales] = (0, _react.useState)([]);
|
|
14
|
+
(0, _react.useEffect)(()=>{
|
|
15
|
+
if (!sdk.editor) {
|
|
16
|
+
setActiveLocales(sdk.locales.available.map((code)=>({
|
|
17
|
+
code
|
|
18
|
+
})));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const availableLocales = new Set(sdk.locales.available);
|
|
22
|
+
const updateLocales = (settings)=>{
|
|
23
|
+
let localeCodes = [];
|
|
24
|
+
if (settings.mode === 'multi' && settings.active) {
|
|
25
|
+
localeCodes = settings.active.filter((locale)=>availableLocales.has(locale));
|
|
26
|
+
} else if (settings.mode === 'single' && settings.focused && availableLocales.has(settings.focused)) {
|
|
27
|
+
localeCodes = [
|
|
28
|
+
settings.focused
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
setActiveLocales(localeCodes.map((code)=>({
|
|
32
|
+
code
|
|
33
|
+
})));
|
|
34
|
+
};
|
|
35
|
+
updateLocales(sdk.editor.getLocaleSettings());
|
|
36
|
+
const unsubscribe = sdk.editor.onLocaleSettingsChanged(updateLocales);
|
|
37
|
+
return ()=>{
|
|
38
|
+
unsubscribe();
|
|
39
|
+
};
|
|
40
|
+
}, [
|
|
41
|
+
sdk.editor,
|
|
42
|
+
sdk.locales.available
|
|
43
|
+
]);
|
|
44
|
+
return activeLocales;
|
|
45
|
+
}
|
|
@@ -98,10 +98,12 @@ describe('useLocalePublishStatus', ()=>{
|
|
|
98
98
|
linkType: 'ContentType',
|
|
99
99
|
id: 'content-type'
|
|
100
100
|
}
|
|
101
|
-
}
|
|
102
|
-
automationTags: []
|
|
101
|
+
}
|
|
103
102
|
},
|
|
104
|
-
fields: {
|
|
103
|
+
fields: {
|
|
104
|
+
title: {},
|
|
105
|
+
file: {}
|
|
106
|
+
}
|
|
105
107
|
};
|
|
106
108
|
const { result } = (0, _reacthooks.renderHook)(()=>(0, _useLocalePublishStatus.useLocalePublishStatus)(entity, localesAPI));
|
|
107
109
|
expect(result.current).toEqual(new Map([
|
package/dist/cjs/index.js
CHANGED
|
@@ -112,6 +112,7 @@ const _typesEntity = require("./typesEntity");
|
|
|
112
112
|
const _isValidImage = require("./utils/isValidImage");
|
|
113
113
|
const _shortenStorageUnit = require("./utils/shortenStorageUnit");
|
|
114
114
|
_export_star(require("./hooks/useLocalePublishStatus"), exports);
|
|
115
|
+
_export_star(require("./hooks/useActiveLocales"), exports);
|
|
115
116
|
_export_star(require("./LocalePublishingEntityStatusBadge"), exports);
|
|
116
117
|
const _ModalDialogLauncher = _interop_require_wildcard(require("./ModalDialogLauncher"));
|
|
117
118
|
const _constraints = _interop_require_wildcard(require("./utils/constraints"));
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export function useActiveLocales(sdk) {
|
|
3
|
+
const [activeLocales, setActiveLocales] = useState([]);
|
|
4
|
+
useEffect(()=>{
|
|
5
|
+
if (!sdk.editor) {
|
|
6
|
+
setActiveLocales(sdk.locales.available.map((code)=>({
|
|
7
|
+
code
|
|
8
|
+
})));
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const availableLocales = new Set(sdk.locales.available);
|
|
12
|
+
const updateLocales = (settings)=>{
|
|
13
|
+
let localeCodes = [];
|
|
14
|
+
if (settings.mode === 'multi' && settings.active) {
|
|
15
|
+
localeCodes = settings.active.filter((locale)=>availableLocales.has(locale));
|
|
16
|
+
} else if (settings.mode === 'single' && settings.focused && availableLocales.has(settings.focused)) {
|
|
17
|
+
localeCodes = [
|
|
18
|
+
settings.focused
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
setActiveLocales(localeCodes.map((code)=>({
|
|
22
|
+
code
|
|
23
|
+
})));
|
|
24
|
+
};
|
|
25
|
+
updateLocales(sdk.editor.getLocaleSettings());
|
|
26
|
+
const unsubscribe = sdk.editor.onLocaleSettingsChanged(updateLocales);
|
|
27
|
+
return ()=>{
|
|
28
|
+
unsubscribe();
|
|
29
|
+
};
|
|
30
|
+
}, [
|
|
31
|
+
sdk.editor,
|
|
32
|
+
sdk.locales.available
|
|
33
|
+
]);
|
|
34
|
+
return activeLocales;
|
|
35
|
+
}
|
|
@@ -94,10 +94,12 @@ describe('useLocalePublishStatus', ()=>{
|
|
|
94
94
|
linkType: 'ContentType',
|
|
95
95
|
id: 'content-type'
|
|
96
96
|
}
|
|
97
|
-
}
|
|
98
|
-
automationTags: []
|
|
97
|
+
}
|
|
99
98
|
},
|
|
100
|
-
fields: {
|
|
99
|
+
fields: {
|
|
100
|
+
title: {},
|
|
101
|
+
file: {}
|
|
102
|
+
}
|
|
101
103
|
};
|
|
102
104
|
const { result } = renderHook(()=>useLocalePublishStatus(entity, localesAPI));
|
|
103
105
|
expect(result.current).toEqual(new Map([
|
package/dist/esm/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { Asset, Entry, File } from './typesEntity';
|
|
|
7
7
|
export { isValidImage } from './utils/isValidImage';
|
|
8
8
|
export { shortenStorageUnit, toLocaleString } from './utils/shortenStorageUnit';
|
|
9
9
|
export * from './hooks/useLocalePublishStatus';
|
|
10
|
+
export * from './hooks/useActiveLocales';
|
|
10
11
|
export { ModalDialogLauncher };
|
|
11
12
|
export { entityHelpers };
|
|
12
13
|
export { ConstraintsUtils };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { Asset, Entry, File } from './typesEntity';
|
|
|
8
8
|
export { isValidImage } from './utils/isValidImage';
|
|
9
9
|
export { shortenStorageUnit, toLocaleString } from './utils/shortenStorageUnit';
|
|
10
10
|
export * from './hooks/useLocalePublishStatus';
|
|
11
|
+
export * from './hooks/useActiveLocales';
|
|
11
12
|
export { ModalDialogLauncher };
|
|
12
13
|
export { entityHelpers };
|
|
13
14
|
export { ConstraintsUtils };
|
|
@@ -55,13 +55,8 @@ export declare function getEntryTitle({ entry, contentType, localeCode, defaultL
|
|
|
55
55
|
defaultLocaleCode: string;
|
|
56
56
|
defaultTitle: string;
|
|
57
57
|
}): string;
|
|
58
|
-
type
|
|
59
|
-
type
|
|
60
|
-
'*': Record<string, AsyncPublishStatus>;
|
|
61
|
-
};
|
|
62
|
-
export type EntitySys = (Entry['sys'] | Asset['sys']) & {
|
|
63
|
-
fieldStatus?: FieldStatus;
|
|
64
|
-
};
|
|
58
|
+
type FieldStatus = 'draft' | 'published' | 'changed';
|
|
59
|
+
export type EntitySys = Entry['sys'] | Asset['sys'];
|
|
65
60
|
/**
|
|
66
61
|
* Returns the status of the entry/asset
|
|
67
62
|
* If a locale code(s) is provided it will pick up the most advanced state for these locale(s)
|
|
@@ -72,11 +67,9 @@ export type EntitySys = (Entry['sys'] | Asset['sys']) & {
|
|
|
72
67
|
* - published
|
|
73
68
|
* - draft
|
|
74
69
|
*/
|
|
75
|
-
export declare function getEntityStatus(sys: EntitySys, localeCodes?: string | string[]):
|
|
70
|
+
export declare function getEntityStatus(sys: EntitySys, localeCodes?: string | string[]): FieldStatus | "deleted" | "archived";
|
|
76
71
|
/**@deprecated use `getEntityStatus` */
|
|
77
|
-
export declare function getEntryStatus(sys: Entry['sys']
|
|
78
|
-
fieldStatus?: FieldStatus;
|
|
79
|
-
}, localeCodes?: string | string[]): AsyncPublishStatus | "deleted" | "archived";
|
|
72
|
+
export declare function getEntryStatus(sys: Entry['sys'], localeCodes?: string | string[]): FieldStatus | "deleted" | "archived";
|
|
80
73
|
/**
|
|
81
74
|
* Gets a promise resolving with a localized asset image field representing a
|
|
82
75
|
* given entities file. The promise may resolve with null.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/field-editor-shared",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@contentful/f36-components": "^4.70.0",
|
|
44
44
|
"@contentful/f36-note": "^4.70.0",
|
|
45
45
|
"@contentful/f36-tokens": "^4.0.5",
|
|
46
|
-
"contentful-management": "^11.
|
|
46
|
+
"contentful-management": "^11.45.1",
|
|
47
47
|
"emotion": "^10.0.17",
|
|
48
48
|
"fast-deep-equal": "^3.1.3",
|
|
49
49
|
"lodash": "^4.17.15"
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"registry": "https://npm.pkg.github.com/"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "acf662acf17e749090975671bf14ce107ac9c499"
|
|
59
59
|
}
|