sanity-plugin-internationalized-array
5.1.175.1.18
dist/index.js~
dist/index.jsModified+9−9
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;