Unlock seamless workflows and faster delivery with our latest releases - Join the deep dive

One or the other validation

By Roboto Studio

This validation can be used if you have two fields and you require one or the other to be filled

One or the other validation

export default {
  name: "someDocument",
  title: "Some document",
  type: "document",
  fields: [
    {
      name: "videoUrl",
      title: "Video url",
      type: "string",
      validation: (Rule) =>
        Rule.custom((field, context) =>
          context.document.image === undefined && field === undefined
            ? "Either Video url or Image must have a value"
            : true
        ),
    },
    {
      name: "image",
      title: "Image",
      type: "image",
      validation: (Rule) =>
        Rule.custom((field, context) =>
          context.document.videoUrl === undefined && field === undefined
            ? "Either Video url or Image must have a value"
            : true
        ),
    },
  ],
};

This regularly appears within websites where you can have either a video or an image for the header of the page. This allows you to validate to ensure you have one or the other.

Contributor

Other schemas by author

Cursor Prompt

Thinking about getting started with AI? Well we're just going to share our latest and greatest prompt so you don't have to do the hard work

Go to Cursor Prompt

Portable Text Mock Content

If you're looking to mockup portable text in Storybook without a Sanity backend, this is the schema you're looking for

Go to Portable Text Mock Content