mirror of
https://github.com/vercel/commerce.git
synced 2025-05-15 22:16:58 +00:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import {LinkIcon} from '@sanity/icons'
|
|
import {defineField} from 'sanity'
|
|
import {PAGE_REFERENCES} from '../../constants'
|
|
|
|
export default defineField({
|
|
title: 'Internal Link',
|
|
name: 'linkInternal',
|
|
type: 'object',
|
|
description: 'Link to content on this site.',
|
|
icon: LinkIcon,
|
|
fields: [
|
|
// Title
|
|
defineField({
|
|
title: 'Title',
|
|
name: 'title',
|
|
type: 'string',
|
|
description: 'If empty, displays the current reference title.'
|
|
}),
|
|
// Reference
|
|
defineField({
|
|
name: 'reference',
|
|
type: 'reference',
|
|
title: 'Content reference',
|
|
description: 'Link to already created, internal content.',
|
|
weak: true,
|
|
to: PAGE_REFERENCES,
|
|
}),
|
|
],
|
|
preview: {
|
|
select: {
|
|
reference: 'reference',
|
|
referenceTitle: 'reference.title',
|
|
referenceType: 'reference._type',
|
|
title: 'title',
|
|
},
|
|
prepare(selection) {
|
|
const {
|
|
reference,
|
|
referenceTitle,
|
|
title,
|
|
} = selection
|
|
|
|
let subtitle = []
|
|
if (reference) {
|
|
subtitle.push([`→ ${referenceTitle || reference?._id}`])
|
|
} else {
|
|
subtitle.push('(Nonexistent document reference)')
|
|
}
|
|
|
|
return {
|
|
title,
|
|
subtitle: subtitle.join(' '),
|
|
}
|
|
},
|
|
},
|
|
})
|