@sanity/assist 4.4.2 → 4.4.4

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/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { pathToString, getVersionFromId, getPublishedId, isVersionId, useEditState, useCurrentUser, useClient, typed, isObjectSchemaType, stringToPath, isKeySegment, isArraySchemaType, useSchema, FormFieldHeaderText, PatchEvent, unset, getVersionId, getDraftId, useColorSchemeValue, useFormCallbacks, useDocumentStore, useDocumentPresence, createPatchChannel, FormBuilder, fromMutationPatches, StatusButton, PresenceOverlay, VirtualizerScrollInstanceProvider, isDocumentSchemaType, useSyncState, set, useWorkspaceSchemaId, FormCallbacksProvider, FormInput, setIfMissing, insert, ObjectInputMember, isArrayOfObjectsSchemaType, defineType, defineField, defineArrayMember, definePlugin } from "sanity";
2
+ import { pathToString, getVersionFromId, getPublishedId, isVersionId, useEditState, useCurrentUser, useClient, typed, isObjectSchemaType, stringToPath, isKeySegment, isArraySchemaType, useSchema, FormFieldHeaderText, PatchEvent, unset, getVersionId, getDraftId, useColorSchemeValue, useFormCallbacks, useDocumentStore, useDocumentPresence, createPatchChannel, FormBuilder, fromMutationPatches, StatusButton, PresenceOverlay, VirtualizerScrollInstanceProvider, isDocumentSchemaType, useSyncState, set, useWorkspaceSchemaId, MemberFieldError, FormCallbacksProvider, FormInput, setIfMissing, insert, ObjectInputMember, isArrayOfObjectsSchemaType, defineType, defineField, defineArrayMember, definePlugin } from "sanity";
3
3
  import { useToast, useLayer, Dialog, Stack, Flex, Tooltip, Text, TextArea, Button, Badge, Popover, Card, Box, ErrorBoundary, focusFirstDescendant, Spinner, Container, Autocomplete, Breadcrumbs, useClickOutside, useGlobalKeyDown, useTheme, rgba, Radio, Checkbox, ThemeProvider, MenuButton, Menu, MenuItem, Switch, Label } from "@sanity/ui";
4
4
  import { useRef, useState, useEffect, useMemo, createContext, useContext, useCallback, useId, forwardRef, createElement, useReducer } from "react";
5
5
  import { useDocumentPane, usePaneRouter, DocumentInspectorHeader, DocumentPaneProvider } from "sanity/structure";
@@ -1024,7 +1024,13 @@ function useAssistDocumentContextValue(documentId, documentType) {
1024
1024
  if (!schemaType)
1025
1025
  throw new Error(`Schema type "${documentType}" not found`);
1026
1026
  return schemaType;
1027
- }, [documentType, schema]), {
1027
+ }, [documentType, schema]), { fieldRefs, fieldRefsByTypePath } = useMemo(() => {
1028
+ const fieldRefs2 = getFieldRefs(documentSchemaType), fieldRefsByTypePath2 = asFieldRefsByTypePath(fieldRefs2);
1029
+ return {
1030
+ fieldRefs: fieldRefs2,
1031
+ fieldRefsByTypePath: fieldRefsByTypePath2
1032
+ };
1033
+ }, [documentSchemaType]), {
1028
1034
  openInspector,
1029
1035
  closeInspector,
1030
1036
  inspector,
@@ -1036,7 +1042,7 @@ function useAssistDocumentContextValue(documentId, documentType) {
1036
1042
  } = useDocumentPane(), { draft, published, version } = editState || {}, assistableDocumentId = selectedReleaseId ? getVersionId(documentId, selectedReleaseId) : documentSchemaType.liveEdit ? documentId : getDraftId(documentId), documentIsNew = selectedReleaseId ? !version?._id : !draft?._id && !published?._id, documentIsAssistable = selectedReleaseId ? !!version : isDocAssistable(documentSchemaType, published, draft), { params } = useAiPaneRouter(), selectedPath = params[fieldPathParam], assistDocument = useStudioAssistDocument({
1037
1043
  documentId: assistableDocumentId,
1038
1044
  schemaType: documentSchemaType
1039
- }), { syntheticTasks, addSyntheticTask, removeSyntheticTask } = useSyntheticTasks(assistableDocumentId), fieldRefs = getFieldRefs(documentSchemaType), fieldRefsByTypePath = asFieldRefsByTypePath(fieldRefs);
1045
+ }), { syntheticTasks, addSyntheticTask, removeSyntheticTask } = useSyntheticTasks(assistableDocumentId);
1040
1046
  return useMemo(() => {
1041
1047
  const base = {
1042
1048
  assistableDocumentId,
@@ -1072,7 +1078,9 @@ function useAssistDocumentContextValue(documentId, documentType) {
1072
1078
  selectedPath,
1073
1079
  syntheticTasks,
1074
1080
  addSyntheticTask,
1075
- removeSyntheticTask
1081
+ removeSyntheticTask,
1082
+ fieldRefs,
1083
+ fieldRefsByTypePath
1076
1084
  ]);
1077
1085
  }
1078
1086
  function useSyntheticTasks(assistableDocumentId) {
@@ -3215,9 +3223,17 @@ function AssistDocumentFormEditable(props) {
3215
3223
  }),
3216
3224
  [formCallbacks, onPathOpen, params, setParams, instruction2]
3217
3225
  );
3218
- return useEffect(() => {
3226
+ useEffect(() => {
3219
3227
  activePath && !instruction2 && onPathOpen([]);
3220
- }, [activePath, instruction2, onPathOpen]), /* @__PURE__ */ jsx(SelectedFieldContextProvider, { value: context, children: /* @__PURE__ */ jsxs(Stack, { space: 5, children: [
3228
+ }, [activePath, instruction2, onPathOpen]);
3229
+ const fieldError = useMemo(() => {
3230
+ const fieldError2 = props.members.find(
3231
+ (m) => m.kind === "error" && m.fieldName === "fields"
3232
+ );
3233
+ if (fieldError2)
3234
+ return /* @__PURE__ */ jsx(MemberFieldError, { member: fieldError2 });
3235
+ }, [props.members]);
3236
+ return /* @__PURE__ */ jsx(SelectedFieldContextProvider, { value: context, children: /* @__PURE__ */ jsxs(Stack, { space: 5, children: [
3221
3237
  /* @__PURE__ */ jsx(
3222
3238
  FieldsInitializer,
3223
3239
  {
@@ -3230,7 +3246,8 @@ function AssistDocumentFormEditable(props) {
3230
3246
  typePath
3231
3247
  ),
3232
3248
  instruction2 && /* @__PURE__ */ jsx(BackToInstructionListLink, {}),
3233
- activePath && /* @__PURE__ */ jsx(FormCallbacksProvider, { ...newCallbacks, children: /* @__PURE__ */ jsx("div", { style: { lineHeight: "1.25em" }, children: /* @__PURE__ */ jsx(FormInput, { ...props, absolutePath: activePath }) }) }),
3249
+ activePath && !fieldError && /* @__PURE__ */ jsx(FormCallbacksProvider, { ...newCallbacks, children: /* @__PURE__ */ jsx("div", { style: { lineHeight: "1.25em" }, children: /* @__PURE__ */ jsx(FormInput, { ...props, absolutePath: activePath }) }) }),
3250
+ fieldError,
3234
3251
  !activePath && props.renderDefault(props)
3235
3252
  ] }) });
3236
3253
  }