2023-08-14 12:06:46 +02:00

63 lines
1.4 KiB
TypeScript

import {StarIcon} from '@sanity/icons'
import {defineField} from 'sanity'
import {languages} from '../../languages'
import {validateImage} from '../../utils/validation'
export default defineField({
name: 'usp',
title: 'USPs',
type: 'document',
icon: StarIcon,
fields: [
defineField({
name: 'language',
type: 'string',
readOnly: true,
description: 'Language of this document.',
// hidden: true,
}),
// Title
defineField({
name: 'title',
title: 'Title',
type: 'string',
description: 'USP title',
validation: (Rule) => Rule.required(),
}),
// Image
defineField({
name: 'image',
title: 'Image',
type: 'mainImage',
description: 'USP icon',
validation: (Rule) => validateImage(Rule, true),
}),
// Text
defineField({
name: 'text',
title: 'Text',
type: 'text',
description: 'Small text displayed below title.',
rows: 5,
}),
],
preview: {
select: {
title: 'title',
image: 'image',
language: 'language',
},
prepare(selection) {
const {image, title, language} = selection
const currentLang = languages.find((lang) => lang.id === language)
return {
media: image,
title,
subtitle: `${currentLang ? currentLang.title : ''}`,
}
},
},
})