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;