How AI is powering better personalization in e-commerce [with Vercel]. Sign up now

Heading custom component

Add a title between fields for some visual grouping

By Arjen Scherff-de Water


helper function

import React from "react";

export function createHeading(title) {
  return {
    inputComponent: (field) => (
      <div
        style={{
          borderBottom: "1px solid rgba(0,0,0,.1)",
          fontSize: "2rem",
          marginTop: "1em",
        }}
      >
        {field.type.title}
      </div>
    ),
    name: `heading${title
      .toLowerCase()
      .replace(/\s/g, "")
      .replace(/[^\w-]+/g, "")
      .replace(/--+/g, "-")}`,
    title,
    type: "string",
  };
}

schema

import { createHeading } from "./helpers";

export default {
  name: "mySchema",
  title: "My Schema",
  type: "document",
  fields: [
    createHeading("Hero"),
    ...,
    createHeading("Media"),
  ]
}

Contributor

Arjen Scherff-de Water

Creative Developer

Netherlands

Visit Arjen Scherff-de Water's profile