@contentful/field-editor-shared 2.3.2 → 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.
|
@@ -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
|
+
}
|
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
|
+
}
|
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 };
|
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",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"publishConfig": {
|
|
56
56
|
"registry": "https://npm.pkg.github.com/"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "acf662acf17e749090975671bf14ce107ac9c499"
|
|
59
59
|
}
|