33 lines
743 B
TypeScript
33 lines
743 B
TypeScript
import { TiFolder } from 'react-icons/ti'
|
||
import { defineField, defineType } from 'sanity'
|
||
|
||
export default defineType({
|
||
name: 'category',
|
||
title: 'Category',
|
||
type: 'document',
|
||
icon: TiFolder,
|
||
fields: [
|
||
{ name: 'title', type: 'string' },
|
||
{
|
||
name: 'parent',
|
||
type: 'reference',
|
||
to: [{ type: 'category' }],
|
||
// This ensures we cannot select other "children"
|
||
options: {
|
||
filter: '!defined(parent)',
|
||
},
|
||
},
|
||
],
|
||
// Customise the preview so parents are visualised in the studio
|
||
preview: {
|
||
select: {
|
||
title: 'title',
|
||
subtitle: 'parent.title',
|
||
},
|
||
prepare: ({ title, subtitle }) => ({
|
||
title,
|
||
subtitle: subtitle ? `– ${subtitle}` : ``,
|
||
}),
|
||
},
|
||
})
|