50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import {defineField, defineType} from 'sanity'
|
|
|
|
export const releaseType = defineType({
|
|
name: 'release',
|
|
title: 'Release',
|
|
type: 'document',
|
|
fields: [
|
|
defineField({ name: 'catalogNo', type: 'string' }),
|
|
defineField({ name: 'name', type: 'string' }),
|
|
defineField({ name: 'albumArtist', type: 'string' }),
|
|
defineField({ name: 'albumCover', type: 'image' }),
|
|
defineField({ name: 'label', title: 'Label', type: 'string',
|
|
options: {
|
|
list: [
|
|
{title: 'TRPTK', value: 'trptk'},
|
|
{title: 'Other', value: 'other'},
|
|
],
|
|
},
|
|
}),
|
|
],
|
|
|
|
orderings: [
|
|
{
|
|
title: 'Cat. No. (Asc.)',
|
|
name: 'catalogNoAsc',
|
|
by: [{field: 'catalogNo', direction: 'asc'}],
|
|
},
|
|
{
|
|
title: 'Cat. No. (Desc.)',
|
|
name: 'catalogNoDesc',
|
|
by: [{field: 'catalogNo', direction: 'desc'}],
|
|
},
|
|
],
|
|
|
|
preview: {
|
|
select: {
|
|
title: 'name',
|
|
artist: 'albumArtist',
|
|
catNo: 'catalogNo',
|
|
media: 'albumCover',
|
|
},
|
|
prepare({title, artist, catNo, media}) {
|
|
return {
|
|
title: `${title} • ${catNo}` || '(Untitled release)',
|
|
subtitle: artist ? artist : '',
|
|
media,
|
|
}
|
|
},
|
|
},
|
|
})
|