UNPKG

@sanity/cli

Version:

Sanity CLI tool for managing Sanity installations, managing plugins, schemas and datasets

86 lines (83 loc) 1.86 kB
import {defineField, defineType} from 'sanity' import {MdLocalMovies as icon} from 'react-icons/md' export default defineType({ name: 'movie', title: 'Movie', type: 'document', icon, fields: [ defineField({ name: 'title', title: 'Title', type: 'string', }), defineField({ name: 'slug', title: 'Slug', type: 'slug', options: { source: 'title', maxLength: 100, }, }), defineField({ name: 'overview', title: 'Overview', type: 'blockContent', }), defineField({ name: 'releaseDate', title: 'Release date', type: 'datetime', }), defineField({ name: 'poster', title: 'Poster Image', type: 'image', options: { hotspot: true, }, }), defineField({ name: 'externalId', title: 'External ID', type: 'number', }), defineField({ name: 'popularity', title: 'Popularity', type: 'number', }), defineField({ name: 'castMembers', title: 'Cast Members', type: 'array', of: [{type: 'castMember'}], }), defineField({ name: 'crewMembers', title: 'Crew Members', type: 'array', of: [{type: 'crewMember'}], }), ], preview: { select: { title: 'title', date: 'releaseDate', media: 'poster', castName0: 'castMembers.0.person.name', castName1: 'castMembers.1.person.name', }, prepare(selection) { const year = selection.date && selection.date.split('-')[0] const cast = [selection.castName0, selection.castName1].filter(Boolean).join(', ') return { title: `${selection.title} ${year ? `(${year})` : ''}`, date: selection.date, subtitle: cast, media: selection.media, } }, }, })