@sanity/document-internationalization 0.3.3 → 0.3.6
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/CHANGELOG.md +9 -0
- package/README.md +6 -0
- package/lib/actions/index.js +12 -16
- package/lib/actions/index.js.map +1 -1
- package/lib/badges/LanguageBadge.d.ts +1 -1
- package/lib/badges/index.js +6 -18
- package/lib/badges/index.js.map +1 -1
- package/lib/language-select/index.js +16 -15
- package/lib/language-select/index.js.map +1 -1
- package/lib/structure/index.js +9 -3
- package/lib/structure/index.js.map +1 -1
- package/lib/types/Ti18nConfig.d.ts +1 -1
- package/lib/utils/getLanguageFromDocument.d.ts +3 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +8 -3
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
package/lib/badges/index.js
CHANGED
|
@@ -21,10 +21,6 @@ var defaultResolve__default = /*#__PURE__*/_interopDefaultLegacy(defaultResolve)
|
|
|
21
21
|
var config__default = /*#__PURE__*/_interopDefaultLegacy(config);
|
|
22
22
|
var schemas__default = /*#__PURE__*/_interopDefaultLegacy(schemas);
|
|
23
23
|
|
|
24
|
-
var I18nPrefix = 'i18n';
|
|
25
|
-
|
|
26
|
-
var I18nDelimiter = '__i18n_';
|
|
27
|
-
|
|
28
24
|
var ReferenceBehavior;
|
|
29
25
|
|
|
30
26
|
(function (ReferenceBehavior) {
|
|
@@ -83,26 +79,18 @@ function getConfig(type) {
|
|
|
83
79
|
};
|
|
84
80
|
}
|
|
85
81
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
var match = id.match(rx);
|
|
90
|
-
if (match && match.length === 2) return match[1]; // delimiter
|
|
91
|
-
|
|
92
|
-
var split = id.split(I18nDelimiter);
|
|
93
|
-
if (split.length > 1) return split[1];
|
|
94
|
-
return null;
|
|
95
|
-
};
|
|
82
|
+
function getLanguageFromDocument(doc, config) {
|
|
83
|
+
return (doc === null || doc === void 0 ? void 0 : doc[config.fieldNames.lang]) || config.base || null;
|
|
84
|
+
}
|
|
96
85
|
|
|
97
86
|
var LanguageBadge = function LanguageBadge(props) {
|
|
98
87
|
var config = getConfig(props.type);
|
|
99
88
|
var doc = props.draft || props.published;
|
|
100
|
-
var
|
|
101
|
-
var fieldName = config.fieldNames.lang;
|
|
89
|
+
var lang = doc ? getLanguageFromDocument(doc, config) : null;
|
|
102
90
|
|
|
103
|
-
if (
|
|
91
|
+
if (lang) {
|
|
104
92
|
return {
|
|
105
|
-
label:
|
|
93
|
+
label: lang,
|
|
106
94
|
color: 'success'
|
|
107
95
|
};
|
|
108
96
|
}
|
package/lib/badges/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/constants/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/constants/ReferenceBehavior.ts","../../src/constants/IdStructure.ts","../../src/utils/getSchema.ts","../../src/utils/getConfig.ts","../../src/utils/getLanguageFromDocument.ts","../../src/badges/LanguageBadge.tsx","../../src/badges/index.ts"],"sourcesContent":["export enum ReferenceBehavior {\n STRONG = 'strong',\n WEAK = 'weak',\n DISABLED = 'disabled',\n}\n","export enum IdStructure {\n SUBPATH = 'subpath',\n DELIMITER = 'delimiter',\n}\n","import schemas from 'part:@sanity/base/schema'\nimport {TSchema} from '../types'\n\nexport const getSchema = <T = any>(name: string): TSchema<T> => {\n return schemas._original.types.find((s) => s.name === name)\n}\n","import config from 'config:@sanity/document-internationalization'\nimport {Ti18nSchema, Ti18nConfig} from '../types'\nimport {IdStructure, ReferenceBehavior} from '../constants'\nimport {getSchema} from './getSchema'\n\nconst getI18nConfigFromType = (type?: string | Ti18nSchema) => {\n let i18nconfig: Ti18nConfig = {}\n\n if (type) {\n if (typeof type === 'string') {\n const schema = getSchema<Ti18nSchema>(type)\n if (schema && typeof schema.i18n !== 'boolean') {\n i18nconfig = schema.i18n\n }\n } else if (typeof type.i18n !== 'boolean') {\n i18nconfig = type.i18n\n }\n }\n\n return i18nconfig\n}\n\nexport function getConfig(type?: string | Ti18nSchema): Required<{\n [K in keyof Ti18nConfig]: Required<Ti18nConfig[K]>\n}> & {\n withTranslationsMaintenance: boolean\n} {\n const schemaConfig = getI18nConfigFromType(type)\n const cfg = config\n\n return {\n base: schemaConfig?.base || cfg?.base || '',\n idStructure: cfg.idStructure || IdStructure.DELIMITER,\n referenceBehavior: cfg.referenceBehavior || ReferenceBehavior.STRONG,\n withTranslationsMaintenance: cfg?.withTranslationsMaintenance === true,\n fieldNames: {\n lang: schemaConfig?.fieldNames?.lang || cfg?.fieldNames?.lang || '__i18n_lang',\n references:\n schemaConfig?.fieldNames?.references || cfg?.fieldNames?.references || '__i18n_refs',\n baseReference:\n schemaConfig?.fieldNames?.baseReference || cfg?.fieldNames?.baseReference || '__i18n_base',\n },\n languages: schemaConfig?.languages || cfg?.languages || [],\n }\n}\n","import type {SanityDocument} from '@sanity/client'\nimport type {getConfig} from './getConfig'\n\nexport function getLanguageFromDocument(\n doc: SanityDocument,\n config: ReturnType<typeof getConfig>\n): string | null {\n return doc?.[config.fieldNames.lang] || config.base || null\n}\n","import {IResolverProps} from '../types'\nimport {getConfig, getLanguageFromDocument} from '../utils'\n\nexport const LanguageBadge = (props: IResolverProps) => {\n const config = getConfig(props.type)\n const doc = props.draft || props.published\n const lang = doc ? getLanguageFromDocument(doc, config) : null\n if (lang) {\n return {\n label: lang,\n color: 'success',\n }\n }\n\n return null\n}\n","import defaultResolve from 'part:@sanity/base/document-badges'\nimport {LanguageBadge} from './LanguageBadge'\nimport {IResolverProps} from '../types'\n\nconst resolver = (props: IResolverProps) => {\n return [...defaultResolve(props), LanguageBadge]\n}\n\nexport default resolver\nexport {LanguageBadge}\n"],"names":["ReferenceBehavior","IdStructure","getSchema","name","schemas","_original","types","find","s","getI18nConfigFromType","type","i18nconfig","schema","i18n","getConfig","schemaConfig","cfg","config","base","idStructure","DELIMITER","referenceBehavior","STRONG","withTranslationsMaintenance","fieldNames","lang","references","baseReference","languages","getLanguageFromDocument","doc","LanguageBadge","props","draft","published","label","color","resolver","_toConsumableArray","defaultResolve"],"mappings":"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"}
|
|
@@ -4945,17 +4945,6 @@ var getLanguagesFromOption = /*#__PURE__*/function () {
|
|
|
4945
4945
|
};
|
|
4946
4946
|
}();
|
|
4947
4947
|
|
|
4948
|
-
var getLanguageFromId = function getLanguageFromId(id) {
|
|
4949
|
-
// subpath
|
|
4950
|
-
var rx = new RegExp("".concat(I18nPrefix, "\\.[^.]+\\.([^.]+)"));
|
|
4951
|
-
var match = id.match(rx);
|
|
4952
|
-
if (match && match.length === 2) return match[1]; // delimiter
|
|
4953
|
-
|
|
4954
|
-
var split = id.split(I18nDelimiter);
|
|
4955
|
-
if (split.length > 1) return split[1];
|
|
4956
|
-
return null;
|
|
4957
|
-
};
|
|
4958
|
-
|
|
4959
4948
|
var getBaseIdFromId = function getBaseIdFromId(id) {
|
|
4960
4949
|
var nonDraftId = id.replace(/^drafts\./, ''); // subpath
|
|
4961
4950
|
|
|
@@ -4968,6 +4957,10 @@ var getBaseIdFromId = function getBaseIdFromId(id) {
|
|
|
4968
4957
|
return nonDraftId;
|
|
4969
4958
|
};
|
|
4970
4959
|
|
|
4960
|
+
function getLanguageFromDocument(doc, config) {
|
|
4961
|
+
return (doc === null || doc === void 0 ? void 0 : doc[config.fieldNames.lang]) || config.base || null;
|
|
4962
|
+
}
|
|
4963
|
+
|
|
4971
4964
|
function useLanguages(document) {
|
|
4972
4965
|
var config = React.useMemo(function () {
|
|
4973
4966
|
return getConfig(document._type);
|
|
@@ -5393,8 +5386,16 @@ var LanguageSelectListItem = function LanguageSelectListItem(_ref5) {
|
|
|
5393
5386
|
_type: currentDocumentType
|
|
5394
5387
|
}, baseDocument ? objectOmit(baseDocument, ["_id", "_type", referencesFieldName]) : {}), {}, _defineProperty__default["default"]({}, langFieldName, language.id), baseDocument !== null && baseDocument !== void 0 && baseDocument._id ? _defineProperty__default["default"]({}, baseFieldName, {
|
|
5395
5388
|
_type: 'reference',
|
|
5396
|
-
_ref: baseDocument._id.replace("drafts
|
|
5397
|
-
_weak:
|
|
5389
|
+
_ref: baseDocument._id.replace("drafts.", ""),
|
|
5390
|
+
_weak: true,
|
|
5391
|
+
_strengthenOnPublish: {
|
|
5392
|
+
type: currentDocumentType,
|
|
5393
|
+
weak: referenceBehavior === 'weak',
|
|
5394
|
+
template: {
|
|
5395
|
+
id: currentDocumentType,
|
|
5396
|
+
params: undefined
|
|
5397
|
+
}
|
|
5398
|
+
}
|
|
5398
5399
|
}) : {}));
|
|
5399
5400
|
|
|
5400
5401
|
case 9:
|
|
@@ -5551,8 +5552,8 @@ var LanguageSelect = function LanguageSelect(_ref) {
|
|
|
5551
5552
|
return getBaseLanguage(languages, config.base);
|
|
5552
5553
|
}, [languages, config.base]);
|
|
5553
5554
|
var currentLanguageCode = React__default["default"].useMemo(function () {
|
|
5554
|
-
return
|
|
5555
|
-
}, [document
|
|
5555
|
+
return getLanguageFromDocument(document, config) || (baseLanguage ? baseLanguage.id : null);
|
|
5556
|
+
}, [document, baseLanguage, config]);
|
|
5556
5557
|
var currentLanguageObject = React__default["default"].useMemo(function () {
|
|
5557
5558
|
return languages.find(function (lang) {
|
|
5558
5559
|
return lang.id === currentLanguageCode;
|