trptk-sanity/schemaTypes/artistType.ts

55 lines
1.2 KiB
TypeScript

import {defineField, defineType} from 'sanity'
export const artistType = defineType({
name: 'artist',
title: 'Artist',
type: 'document',
fields: [
defineField({
name: 'name',
title: 'Name',
type: 'string',
validation: (Rule) => Rule.required(),
}),
defineField({
name: 'sortKey',
title: 'Sorting Key',
type: 'string',
validation: (Rule) => Rule.required(),
}),
defineField({
name: 'slug',
title: 'Slug',
type: 'slug',
options: {source: 'name', maxLength: 96},
validation: (Rule) => Rule.required(),
}),
defineField({
name: 'image',
title: 'Image',
type: 'image',
options: {hotspot: true},
}),
defineField({
name: 'description',
title: 'Description',
type: 'array',
of: [{type: 'block'}],
}),
],
orderings: [
{
title: 'Name (A → Z)',
name: 'sortKeyAsc',
by: [{field: 'name', direction: 'asc'}],
},
{
title: 'Sorting key (A → Z)',
name: 'sortKeyAsc',
by: [{field: 'sortKey', direction: 'asc'}],
},
],
preview: {
select: {title: 'name', media: 'image'},
},
})