import { defineType, defineField, defineArrayMember } from 'sanity'; export const homePageType = defineType({ name: 'homePage', title: 'Home Page', type: 'document', // Singleton — only one document of this type should exist __experimental_actions: ['update', 'publish'], fields: [ defineField({ name: 'heroHeadline', title: 'Hero headline', type: 'string', }), defineField({ name: 'heroMission', title: 'Mission statement (hero blockquote)', type: 'text', rows: 3, }), defineField({ name: 'videoHeading', title: 'Video section heading', type: 'string', }), defineField({ name: 'videoBody', title: 'Video section body text', type: 'text', rows: 3, }), defineField({ name: 'videoYoutubeId', title: 'YouTube video ID', type: 'string', description: 'Just the ID, e.g. IX2DGd6m8BU — not the full URL', }), defineField({ name: 'ctaCards', title: 'CTA cards (editorial panel)', type: 'array', of: [ defineArrayMember({ type: 'object', name: 'ctaCard', fields: [ defineField({ name: 'label', title: 'Eyebrow label', type: 'string' }), defineField({ name: 'title', title: 'Card title', type: 'string' }), defineField({ name: 'description', title: 'Description', type: 'text', rows: 2 }), defineField({ name: 'image', title: 'Background image', type: 'image', options: { hotspot: true } }), defineField({ name: 'href', title: 'Link path', type: 'string' }), ], preview: { select: { title: 'title', subtitle: 'label' } }, }), ], }), defineField({ name: 'sponsorHeading', title: 'Sponsors section heading', type: 'string', }), defineField({ name: 'sponsors', title: 'Sponsors', type: 'array', of: [ defineArrayMember({ type: 'object', name: 'sponsor', fields: [ defineField({ name: 'name', title: 'Name', type: 'string' }), defineField({ name: 'logo', title: 'Logo', type: 'image' }), defineField({ name: 'url', title: 'Website URL', type: 'url' }), ], preview: { select: { title: 'name' } }, }), ], }), ], preview: { prepare: () => ({ title: 'Home Page' }), }, });