@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 };
@@ -0,0 +1,8 @@
1
+ import { BaseAppSDK, SharedEditorSDK } from '@contentful/app-sdk';
2
+ export type SDK = {
3
+ editor?: SharedEditorSDK['editor'];
4
+ locales: Pick<BaseAppSDK['locales'], 'available'>;
5
+ };
6
+ export declare function useActiveLocales(sdk: SDK): {
7
+ code: string;
8
+ }[];
@@ -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.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": "818d5f85db9f0d8db39fc41a6019efb958c7b513"
58
+ "gitHead": "acf662acf17e749090975671bf14ce107ac9c499"
59
59
  }