sanity-plugin-internationalized-array
5.1.255.1.26
dist/index.js~
dist/index.jsModified+42−37
Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -1,8 +1,10 @@
+import "@sanity/ui/styles.css";
import { languageFilter, useLanguageFilterStudioContext } from "@sanity/language-filter";
import { ArrayOfObjectsItem, MemberItemError, PatchEvent, defineDocumentFieldAction, defineField, definePlugin, insert, isDocumentSchemaType, isObjectInputProps, isSanityDocument, set, setIfMissing, unset, useClient, useFormValue, useGetFormValue, useSchema, useWorkspace } from "sanity";
import { c } from "react/compiler-runtime";
-import { Box, Button, Card, Code, Flex, Grid, Label, Menu, MenuButton, MenuItem, Spinner, Stack, Text, Tooltip, useToast } from "@sanity/ui";
+import { Box, Button, Card, Flex, Grid, Label, Spinner, Stack, Text } from "@sanity/ui";
+import { useToast } from "@sanity/ui/toast";
import { randomKey } from "@sanity/util/content";
import { createContext, createElement, use, useCallback, useContext, useDeferredValue, useEffect } from "react";
import { useDocumentPane } from "sanity/structure";
import { AddIcon } from "@sanity/icons/Add";
@@ -10,10 +12,13 @@
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
import { TranslateIcon } from "@sanity/icons/Translate";
import camelCase from "lodash-es/camelCase.js";
import upperFirst from "lodash-es/upperFirst.js";
+import { Code } from "@sanity/ui/code";
import { WarningOutlineIcon } from "@sanity/icons/WarningOutline";
import { RemoveCircleIcon } from "@sanity/icons/RemoveCircle";
+import { Menu, MenuButton, MenuItem } from "@sanity/ui/menu";
+import { Tooltip } from "@sanity/ui/tooltip";
const namespace = "sanity-plugin-internationalized-array", functionKeyCache = /* @__PURE__ */ new WeakMap(), promiseCache = /* @__PURE__ */ new Map(), functionCache = /* @__PURE__ */ new Map();
function stringifyCacheKey(key) {
return JSON.stringify(key);
}
@@ -466,53 +471,53 @@
return nextLanguageIndex < 0 ? languagesInUse.push(item) : languagesInUse.splice(nextLanguageIndex, 0, item), nextLanguageIndex < 0 ? insert([item], "after", [...path, nextLanguageIndex]) : insert([item], "before", [...path, nextLanguageIndex]);
});
}
const createTranslateFieldActions = (fieldActionProps, { languages, filteredLanguages }) => languages.map((language) => {
- let value = useFormValue(fieldActionProps.path), { onChange, formState } = useDocumentPane(), disabled = !!formState?.readOnly || (value && Array.isArray(value) ? !!value?.find((item) => item.language === language.id) : !1), hidden = !filteredLanguages.some((f) => f.id === language.id);
+ let value = useFormValue(fieldActionProps.path), { onChange, formState } = useDocumentPane(), disabled = !!formState?.readOnly || (value && Array.isArray(value) ? !!value?.find((item) => item.language === language.id) : !1), hidden = !filteredLanguages.some((f) => f.id === language.id), onAction = useCallback(() => {
+ let { schemaType, path } = fieldActionProps, patches = createAddLanguagePatches({
+ addLanguageKeys: [language.id],
+ schemaTypeName: schemaType.name,
+ languages,
+ filteredLanguages,
+ value,
+ path
+ });
+ onChange(PatchEvent.from([setIfMissing([], path), ...patches]));
+ }, [
+ language.id,
+ value,
+ onChange
+ ]);
return {
type: "action",
icon: AddIcon,
- onAction: useCallback(() => {
- let { schemaType, path } = fieldActionProps, patches = createAddLanguagePatches({
- addLanguageKeys: [language.id],
- schemaTypeName: schemaType.name,
- languages,
- filteredLanguages,
- value,
- path
- });
- onChange(PatchEvent.from([setIfMissing([], path), ...patches]));
- }, [
- language.id,
- value,
- onChange
- ]),
+ onAction,
title: language.title,
hidden,
disabled
};
}), AddMissingTranslationsFieldAction = (fieldActionProps, { languages, filteredLanguages }) => {
- let value = useFormValue(fieldActionProps.path), { onChange, formState } = useDocumentPane(), disabled = !!formState?.readOnly || value && value.length === filteredLanguages.length, hidden = checkAllLanguagesArePresent(filteredLanguages, value);
+ let value = useFormValue(fieldActionProps.path), { onChange, formState } = useDocumentPane(), disabled = !!formState?.readOnly || value && value.length === filteredLanguages.length, hidden = checkAllLanguagesArePresent(filteredLanguages, value), onAction = useCallback(() => {
+ let { schemaType, path } = fieldActionProps, patches = createAddLanguagePatches({
+ addLanguageKeys: [],
+ schemaTypeName: schemaType.name,
+ languages,
+ filteredLanguages,
+ value,
+ path
+ });
+ onChange(PatchEvent.from([setIfMissing([], path), ...patches]));
+ }, [
+ fieldActionProps,
+ filteredLanguages,
+ languages,
+ onChange,
+ value
+ ]);
return {
type: "action",
icon: AddIcon,
- onAction: useCallback(() => {
- let { schemaType, path } = fieldActionProps, patches = createAddLanguagePatches({
- addLanguageKeys: [],
- schemaTypeName: schemaType.name,
- languages,
- filteredLanguages,
- value,
- path
- });
- onChange(PatchEvent.from([setIfMissing([], path), ...patches]));
- }, [
- fieldActionProps,
- filteredLanguages,
- languages,
- onChange,
- value
- ]),
+ onAction,
title: createAddAllTitle(value, filteredLanguages),
disabled,
hidden
};
@@ -1176,11 +1181,11 @@
function _temp2(patch) {
return !patch || typeof patch != "object" ? !1 : patch.type === "insert" && patch.path && Array.isArray(patch.path) && patch.path.length > 0 ? patch.path[0] === "value" || typeof patch.path[0] == "number" : !1;
}
var object_default = (config) => {
- let { type } = config, typeName = typeof type == "string" ? type : type.name;
+ let { type } = config, typeName = typeof type == "string" ? type : type.name, objectName = createFieldName(typeName, !0);
return defineField({
- name: createFieldName(typeName, !0),
+ name: objectName,
title: `Internationalized array ${typeName}`,
type: "object",
components: {
item: InternationalizedInput,