@sanity/language-filter 2.28.0 → 2.29.5
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/LICENSE
CHANGED
|
@@ -3,6 +3,6 @@ import { SchemaType } from '@sanity/types';
|
|
|
3
3
|
interface Props {
|
|
4
4
|
schemaType?: SchemaType;
|
|
5
5
|
}
|
|
6
|
-
declare const SelectLanguageProvider: ({ schemaType }: Props) => JSX.Element;
|
|
6
|
+
declare const SelectLanguageProvider: ({ schemaType }: Props) => JSX.Element | null;
|
|
7
7
|
export default SelectLanguageProvider;
|
|
8
8
|
//# sourceMappingURL=SelectLanguageProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectLanguageProvider.d.ts","sourceRoot":"","sources":["../../src/SelectLanguageProvider.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"SelectLanguageProvider.d.ts","sourceRoot":"","sources":["../../src/SelectLanguageProvider.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAMxC,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,QAAA,MAAM,sBAAsB,mBAAkB,KAAK,uBAoDlD,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _config = _interopRequireDefault(require("part:@sanity/language-filter/config"));
|
|
11
11
|
|
|
12
|
+
var _languageSelectComponent = _interopRequireDefault(require("all:part:@sanity/desk-tool/language-select-component"));
|
|
13
|
+
|
|
12
14
|
var _datastore = require("./datastore");
|
|
13
15
|
|
|
14
16
|
var _SelectLanguage = _interopRequireDefault(require("./SelectLanguage"));
|
|
@@ -45,6 +47,19 @@ var SelectLanguageProvider = _ref => {
|
|
|
45
47
|
currentDocumentType = _useState4[0],
|
|
46
48
|
setCurrentDocumentType = _useState4[1];
|
|
47
49
|
|
|
50
|
+
var shouldShow = (0, _react.useMemo)(() => {
|
|
51
|
+
var documentTypes = _config.default.documentTypes;
|
|
52
|
+
return !!(documentTypes && schemaType !== null && schemaType !== void 0 && schemaType.name && documentTypes.includes(schemaType.name));
|
|
53
|
+
}, [schemaType]);
|
|
54
|
+
var FallbackImplementation = (0, _react.useMemo)(() => {
|
|
55
|
+
if (_languageSelectComponent.default && Array.isArray(_languageSelectComponent.default)) {
|
|
56
|
+
var _languageFilterImplem, _languageFilterImplem2;
|
|
57
|
+
|
|
58
|
+
return (_languageFilterImplem = _languageSelectComponent.default === null || _languageSelectComponent.default === void 0 ? void 0 : (_languageFilterImplem2 = _languageSelectComponent.default.filter(component => SelectLanguageProvider !== component)) === null || _languageFilterImplem2 === void 0 ? void 0 : _languageFilterImplem2[0]) !== null && _languageFilterImplem !== void 0 ? _languageFilterImplem : null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return null;
|
|
62
|
+
}, []);
|
|
48
63
|
(0, _react.useEffect)(() => {
|
|
49
64
|
setCurrentDocumentType(schemaType === null || schemaType === void 0 ? void 0 : schemaType.name);
|
|
50
65
|
}, [schemaType]);
|
|
@@ -58,14 +73,25 @@ var SelectLanguageProvider = _ref => {
|
|
|
58
73
|
}
|
|
59
74
|
};
|
|
60
75
|
}, []);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
|
|
77
|
+
if (shouldShow) {
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement(_SelectLanguage.default, {
|
|
79
|
+
languages: _config.default.supportedLanguages,
|
|
80
|
+
defaultLanguages: _config.default.defaultLanguages,
|
|
81
|
+
documentTypes: _config.default.documentTypes,
|
|
82
|
+
currentDocumentType: currentDocumentType,
|
|
83
|
+
selected: selected,
|
|
84
|
+
onChange: _datastore.setLangs
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (FallbackImplementation) {
|
|
89
|
+
return /*#__PURE__*/_react.default.createElement(FallbackImplementation, {
|
|
90
|
+
schemaType: schemaType
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return null;
|
|
69
95
|
};
|
|
70
96
|
|
|
71
97
|
var _default = SelectLanguageProvider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/language-filter",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.5",
|
|
4
4
|
"description": "A Sanity plugin that supports filtering localized fields by language",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"language-filter"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@sanity/icons": "^1.2.
|
|
19
|
-
"@sanity/types": "2.
|
|
20
|
-
"@sanity/ui": "^0.37.
|
|
18
|
+
"@sanity/icons": "^1.2.6",
|
|
19
|
+
"@sanity/types": "2.29.5",
|
|
20
|
+
"@sanity/ui": "^0.37.6",
|
|
21
21
|
"lodash": "^4.17.15",
|
|
22
22
|
"rxjs": "^6.5.3"
|
|
23
23
|
},
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "ad132541b3fe82d622728ed07dd580361e097e5f"
|
|
43
43
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// @todo: remove the following line when part imports has been removed from this file
|
|
2
2
|
///<reference types="@sanity/types/parts" />
|
|
3
3
|
|
|
4
|
-
import React, {useRef, useEffect, useState} from 'react'
|
|
4
|
+
import React, {useRef, useEffect, useState, useMemo} from 'react'
|
|
5
5
|
import config from 'part:@sanity/language-filter/config'
|
|
6
6
|
import {SchemaType} from '@sanity/types'
|
|
7
7
|
import {Subscription} from 'rxjs'
|
|
8
|
+
import languageFilterImplementations from 'all:part:@sanity/desk-tool/language-select-component'
|
|
8
9
|
import {selectedLanguages$, setLangs} from './datastore'
|
|
9
10
|
import SelectLanguage from './SelectLanguage'
|
|
10
11
|
|
|
@@ -16,6 +17,20 @@ const SelectLanguageProvider = ({schemaType}: Props) => {
|
|
|
16
17
|
const subscriptionRef$ = useRef<Subscription | null>(null)
|
|
17
18
|
const [selected, setSelected] = useState<string[]>([])
|
|
18
19
|
const [currentDocumentType, setCurrentDocumentType] = useState<string | undefined>()
|
|
20
|
+
const shouldShow = useMemo(() => {
|
|
21
|
+
const {documentTypes} = config
|
|
22
|
+
return !!(documentTypes && schemaType?.name && documentTypes.includes(schemaType.name))
|
|
23
|
+
}, [schemaType])
|
|
24
|
+
const FallbackImplementation = useMemo(() => {
|
|
25
|
+
if (languageFilterImplementations && Array.isArray(languageFilterImplementations)) {
|
|
26
|
+
return (
|
|
27
|
+
languageFilterImplementations?.filter(
|
|
28
|
+
(component) => SelectLanguageProvider !== component
|
|
29
|
+
)?.[0] ?? null
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
return null
|
|
33
|
+
}, [])
|
|
19
34
|
|
|
20
35
|
useEffect(() => {
|
|
21
36
|
setCurrentDocumentType(schemaType?.name)
|
|
@@ -32,16 +47,24 @@ const SelectLanguageProvider = ({schemaType}: Props) => {
|
|
|
32
47
|
}
|
|
33
48
|
}, [])
|
|
34
49
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
if (shouldShow) {
|
|
51
|
+
return (
|
|
52
|
+
<SelectLanguage
|
|
53
|
+
languages={config.supportedLanguages}
|
|
54
|
+
defaultLanguages={config.defaultLanguages}
|
|
55
|
+
documentTypes={config.documentTypes}
|
|
56
|
+
currentDocumentType={currentDocumentType}
|
|
57
|
+
selected={selected}
|
|
58
|
+
onChange={setLangs}
|
|
59
|
+
/>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (FallbackImplementation) {
|
|
64
|
+
return <FallbackImplementation schemaType={schemaType} />
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return null
|
|
45
68
|
}
|
|
46
69
|
|
|
47
70
|
export default SelectLanguageProvider
|