Joint session with Vercel: How to build intelligent storefronts (May 15th)

One or the other validation

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

By Roboto Studio


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

Roboto Studio

The best editorial experiences on the web

Visit Roboto Studio's profile