sanity-plugin-internationalized-array
5.1.175.1.18
~
Modified (6 files)
Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -97,10 +97,10 @@
}
if (typeof value == "object" && value) {
let startsWithUnderscoreRegex = /^_/;
return Object.keys(value).filter((key) => !key.match(startsWithUnderscoreRegex)).flatMap((item) => {
- let selectedValue = value[item];
- return getDocumentsToTranslate(selectedValue, [...rootPath, item]);
+ let selectedValue = value[item], path = [...rootPath, item];
+ return getDocumentsToTranslate(selectedValue, path);
});
}
return [];
};
@@ -134,9 +134,9 @@
if (!select || !document) return {};
let selection = select || {}, selectedValue = {};
for (let [key, path] of Object.entries(selection)) {
let value = get(document, path);
- Array.isArray(value) && (value = value.filter((item) => typeof item == "object" ? item?._type === "reference" && "_ref" in item : !0)), selectedValue[key] = value;
+ Array.isArray(value) && (value = value.filter((item) => typeof item != "object" || item?._type === "reference" && "_ref" in item)), selectedValue[key] = value;
}
return selectedValue;
}, InternationalizedArrayContext = createContext({
...CONFIG_DEFAULT,
@@ -452,12 +452,12 @@
*/
function createAddLanguagePatches(config) {
let { addLanguageKeys, schemaTypeName, languages, filteredLanguages, value, path = [] } = config, type = `${schemaTypeName}Value`;
if (!isInternationalizedArrayItemType(type)) throw Error(`Invalid internationalized array type: ${type}`);
- let itemBase = { _type: type }, newItems = Array.isArray(addLanguageKeys) && addLanguageKeys.length > 0 ? addLanguageKeys.filter((id) => value?.length ? !value.find((v) => v[LANGUAGE_FIELD_NAME] === id) : !0).map((id) => Object.assign({}, itemBase, {
+ let itemBase = { _type: type }, newItems = Array.isArray(addLanguageKeys) && addLanguageKeys.length > 0 ? addLanguageKeys.filter((id) => !value?.length || !value.find((v) => v[LANGUAGE_FIELD_NAME] === id)).map((id) => Object.assign({}, itemBase, {
_key: randomKey(),
[LANGUAGE_FIELD_NAME]: id
- })) : filteredLanguages.filter((language) => value?.length ? !value.find((v) => v[LANGUAGE_FIELD_NAME] === language.id) : !0).map((language) => Object.assign({}, itemBase, {
+ })) : filteredLanguages.filter((language) => !value?.length || !value.find((v) => v[LANGUAGE_FIELD_NAME] === language.id)).map((language) => Object.assign({}, itemBase, {
_key: randomKey(),
[LANGUAGE_FIELD_NAME]: language.id
})), languagesInUse = value?.length ? value.map((v) => v) : [];
return newItems.map((item) => {
@@ -962,12 +962,12 @@
paths: nonLanguageKeys.map((item) => [{ _key: item._key }])
};
let seenLanguages = /* @__PURE__ */ new Set(), duplicateValues = [];
for (let item of value) item?.language && (seenLanguages.has(item.language) ? duplicateValues.push(item) : seenLanguages.add(item[LANGUAGE_FIELD_NAME]));
- return duplicateValues.length ? {
+ return !duplicateValues.length || {
message: "There can only be one field per language",
paths: duplicateValues.map((item) => [{ _key: item._key }])
- } : !0;
+ };
})
});
};
/**
@@ -1086,10 +1086,10 @@
let initPatch = valueField === void 0 ? {
type: "setIfMissing",
path: ["value"],
value: []
- } : null, fixedPatches = patches.map(_temp3);
- return originalOnChange(initPatch ? [initPatch, ...fixedPatches] : fixedPatches);
+ } : null, fixedPatches = patches.map(_temp3), allPatches = initPatch ? [initPatch, ...fixedPatches] : fixedPatches;
+ return originalOnChange(allPatches);
}
return originalOnChange(patches);
}, $[0] = originalOnChange, $[1] = props.value?.value, $[2] = t0) : t0 = $[2], props.value?.value;
let wrappedOnChange = t0, { languages, languageDisplay, defaultLanguages } = useInternationalizedArrayContext(), t1; Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "sanity-plugin-internationalized-array",
- "version": "5.1.17",
+ "version": "5.1.18",
"description": "Store localized fields in an array to save on attributes",
"keywords": [
"sanity",
"sanity-plugin"
@@ -28,36 +28,36 @@
"./package.json": "./package.json"
},
"dependencies": {
"@sanity/icons": "^5.0.0",
- "@sanity/ui": "^3.3.1",
+ "@sanity/ui": "^3.3.5",
"@sanity/util": "^6.3.0",
"lodash-es": "^4.18.1"
},
"devDependencies": {
"@sanity/tsconfig": "^2.2.0",
- "@sanity/tsdown-config": "^0.11.0",
+ "@sanity/tsdown-config": "^0.13.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/lodash-es": "^4.17.12",
- "@types/node": "^24.13.2",
+ "@types/node": "^24.13.3",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
"jsdom": "^29.1.1",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"sanity": "^6.3.0",
"styled-components": "^6.4.3",
- "tsdown": "^0.22.3",
- "@sanity/language-filter": "5.0.7"
+ "tsdown": "^0.22.5",
+ "@sanity/language-filter": "5.0.8"
},
"peerDependencies": {
"react": "^19.2",
"react-dom": "^19.2",
"sanity": "^5 || ^6.0.0-0",
- "@sanity/assist": "^6.1.10",
- "@sanity/language-filter": "^5.0.7"
+ "@sanity/assist": "^6.1.11",
+ "@sanity/language-filter": "^5.0.8"
},
"peerDependenciesMeta": {
"@sanity/assist": {
"optional": true Index: package/dist/index.d.ts.map
===================================================================
--- package/dist/index.d.ts.map
+++ package/dist/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/cache.ts","../src/constants.ts","../src/plugin.tsx","../src/utils/internationalizedArrayLanguageFilter.ts"],"mappings":";;KAEY,QAAA;EACV,EAAA,EAAI,IAAA,CAAK,4BAA4B;EACrC,KAAA;AAAA;AAAA,KAGU,WAAA;AAAA,KAEA,WAAA;EACV,IAAA;EACA,IAAA,EAAM,WAAA;EACN,SAAA,EAAW,QAAA;EACX,KAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA;EACA,UAAA,GAAa,IAAA,GAAO,IAAA;EACpB,KAAA;IAAA,CAAU,GAAA;IAAuB,OAAA;MAAA,CAAW,GAAA;IAAA;EAAA;AAAA;;;;KAMlC,KAAA;EACV,IAAA,UAdA;EAgBA,QAAA;EACA,KAAA;AAAA;AAAA,iBAGc,gCAAA,CACd,IAAA,WACC,IAAA,IAAQ,0BAA0B;AAAA,KAIzB,0BAAA;EACV,IAAA;EACA,KAAA,GAAQ,CAAC,EAtBT;EAwBA,QAAA;EAxBoB;;;EA4BpB,KAAA;AAAA;AAAA,KAGU,gBAAA,IACV,MAAA,EAAQ,YAAA,EACR,aAAA,EAAe,MAAA,sBACZ,OAAA,CAAQ,QAAA;AAAA,KAED,eAAA;AAAA,KAEA,YAAA;EA/BK;;;;EAoCf,UAAA;EAhCA;;AAAK;AAGP;;;;;;;;AAEqC;EAwCnC,MAAA,GAAS,MAAA;EApC2B;;;;;;;;;;AAQ/B;AAGP;;;;;;;;;;;;;;;;EAqDE,SAAA,EAAW,QAAA,KAAa,gBAAA;EAhDd;;;;AAAe;AAE3B;;;EAuDE,gBAAA;EATW;;;;;;;;;;;;;;;;;;;;;;;EAkCX,UAAA,YAAsB,kBAAA,GAAqB,eAAA;EAyB3C;;;;EApBA,eAAA;EAiC0B;;;;EA5B1B,YAAA;;ACpHF;;;EDyHE,eAAA,GAAkB,eAAA;ECvHnB;;ACND;;;;AAAsD;;ACZtD;EHmJE,sBAAA,IAA0B,YAAA;;;AGnJO;;ACJnC;;;;;;;EJmKE,cAAA;IACE,aAAA,EAAe,QAAA,CAAS,oBAAA;IACxB,gBAAA,GAAmB,oBAAA;EAAA;AAAA;AAAA,cCjJV,KAAA;;;AD3Bb;;;;;;;;;AAEO;AAGP;;;;AAAuB;AAEvB;;;;;;cEgBa,mBAAA;AAAA,cCZA,sBAAA,mBAAsB,MAAA,CAAA,YAAA;;AHXnC;;;cIOa,oCAAA,GAAoC,aAAA,EAChC,gBAAA,EAAgB,OAAA,EACtB,WAAA,GAAc,aAAA,EAAa,mBAAA,YACP,WAAA,EAChB,MAAA,+BAAmC,SAAA,EACrC,QAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/cache.ts","../src/constants.ts","../src/plugin.tsx","../src/utils/internationalizedArrayLanguageFilter.ts"],"mappings":";;KAEY;EACV,IAAI,KAAK;EACT;;KAGU;KAEA;EACV;EACA,MAAM;EACN,WAAW;EACX;EACA;EACA;EACA;EACA,aAAa,OAAO;EACpB;KAAU;IAAuB;OAAW;;;;;;;KAMlC;EACV;;EAEA;EACA;;iBAGc,iCACd,eACC,QAAQ;KAIC,2BAA2B;EACrC;EACA,QAAQ;;EAER;;;;EAIA;;KAGU,oBACV,QAAQ,cACR,eAAe,4BACZ,QAAQ;KAED;KAEA;;;;;EAKV;;;;;;;;;;;;;EAaA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BT,WAAW,aAAa;;;;;;;;;EASxB;;;;;;;;;;;;;;;;;;;;;;;;EAyBA,sBAAsB,qBAAqB;;;;;EAK3C;;;;;EAKA;;;;;EAKA,kBAAkB;;;;;;;;;;EAUlB,0BAA0B;;;;;;;;;;;;EAY1B;IACE,eAAe,SAAS;IACxB,mBAAmB;;;cCjJV;;;;;;;;;;;;;;;;;;;;;;;;cCJA;cCZA,yCAAsB,OAAA;;;;;cCJtB,uCAAoC,eAChC,kBAAgB,SACtB,cAAc,eAAa,+BACP,aAChB,qCAAmC,WACrC"}
\ No newline at end of file Index: package/dist/migrations/index.d.ts.map
===================================================================
--- package/dist/migrations/index.d.ts.map
+++ package/dist/migrations/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../../migrations/migrateToLanguageField.ts"],"mappings":"AA2BA;;;;;;;;;;AAAA,iBAAgB,sBAAA,CAAuB,aAAA;;;;mEAAD,IAAA,kCAAA,IAAA;MAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../../migrations/migrateToLanguageField.ts"],"mappings":"AA2BA;;;;;;;;;;iBAAgB,uBAAuB;;;;mEAAvB,sCAAA"}
\ No newline at end of file File too large for inline diff
Index: package/dist/index.d.ts
===================================================================
--- package/dist/index.d.ts
+++ package/dist/index.d.ts
@@ -24,16 +24,18 @@
/**
* @deprecated Use InternationalizedArrayItem instead
*/
type Value = {
- _key: string; /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
+ _key: string;
+ /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
language: string;
value?: unknown;
};
declare function isInternationalizedArrayItemType(type: string): type is InternationalizedArrayItem['_type'];
type InternationalizedArrayItem<T = unknown> = {
_key: string;
- value?: T; /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
+ value?: T;
+ /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
language: string;
/**
* string that starts with "internationalizedArray" and ends with "Value"
*/