next.js/examples/cms-payload/payload/fields/hero.ts
hero.ts56 lines1.1 KB
import { Field } from "payload/types";
import linkGroup from "./linkGroup";
import richText from "./richText";
import label from "./richText/label";
import largeBody from "./richText/largeBody";

export const hero: Field = {
  name: "hero",
  label: false,
  type: "group",
  fields: [
    {
      type: "select",
      name: "type",
      label: "Type",
      required: true,
      defaultValue: "lowImpact",
      options: [
        {
          label: "High Impact",
          value: "highImpact",
        },
        {
          label: "Medium Impact",
          value: "mediumImpact",
        },
        {
          label: "Low Impact",
          value: "lowImpact",
        },
      ],
    },
    richText({
      admin: {
        elements: ["h1", largeBody, label, "link"],
        leaves: [],
      },
    }),
    linkGroup({
      overrides: {
        maxRows: 2,
      },
    }),
    {
      name: "media",
      type: "upload",
      relationTo: "media",
      required: true,
      admin: {
        condition: (_, { type } = {}) =>
          ["highImpact", "mediumImpact"].includes(type),
      },
    },
  ],
};
Quest for Codev2.0.0
/
SIGN IN