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(' '), } }, }, })