60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import { format, min, parseISO } from 'date-fns'
|
|
import { TiLocationOutline } from 'react-icons/ti'
|
|
import { IoLocationOutline } from 'react-icons/io5'
|
|
import { defineField, defineType } from 'sanity'
|
|
|
|
//pagebuilder schema
|
|
import authorType from './author'
|
|
import pageType from './page/page'
|
|
|
|
export default {
|
|
name: 'mapinteractive',
|
|
title: 'Map Interactive',
|
|
icon: IoLocationOutline,
|
|
type: 'document',
|
|
fields: [
|
|
{
|
|
name: 'mapname',
|
|
title: 'Map Name',
|
|
description: 'Nama titik map',
|
|
type: 'string',
|
|
validation: (rule) => rule.required(),
|
|
},
|
|
{
|
|
name: 'kode',
|
|
title: 'Kode Map',
|
|
description: 'No kode konten titik map (tidak untuk diedit)',
|
|
type: 'number',
|
|
validation: (rule) => rule.required().min(1).max(12),
|
|
},
|
|
{
|
|
name: 'page',
|
|
title: 'Content',
|
|
description: 'Pilih konten yang sesuai dengan titik map',
|
|
type: 'reference',
|
|
to: [{ type: pageType.name }],
|
|
},
|
|
{
|
|
name: 'author',
|
|
title: 'Author',
|
|
description: 'Pilih admin/author',
|
|
type: 'reference',
|
|
to: [{ type: authorType.name }],
|
|
},
|
|
{
|
|
name: 'cordX',
|
|
title: 'Cord. X',
|
|
description: 'Kordinat titik map (tidak untuk diedit)',
|
|
type: 'number',
|
|
validation: (rule) => rule.required().min(0).max(100),
|
|
},
|
|
{
|
|
name: 'cordY',
|
|
title: 'Cord. Y',
|
|
description: 'Kordinat titik map (tidak untuk diedit)',
|
|
type: 'number',
|
|
validation: (rule) => rule.required().min(0).max(100),
|
|
},
|
|
],
|
|
}
|