Files
payload/examples/localization/src/heros/config.ts
2024-12-22 19:21:56 +00:00

74 lines
1.5 KiB
TypeScript

import type { Field } from 'payload'
import {
FixedToolbarFeature,
HeadingFeature,
InlineToolbarFeature,
lexicalEditor,
} from '@payloadcms/richtext-lexical'
import { linkGroup } from '@/fields/linkGroup'
export const hero: Field = {
name: 'hero',
type: 'group',
fields: [
{
name: 'type',
type: 'select',
defaultValue: 'lowImpact',
label: 'Type',
options: [
{
label: 'None',
value: 'none',
},
{
label: 'High Impact',
value: 'highImpact',
},
{
label: 'Medium Impact',
value: 'mediumImpact',
},
{
label: 'Low Impact',
value: 'lowImpact',
},
],
required: true,
},
{
name: 'richText',
type: 'richText',
localized: true,
editor: lexicalEditor({
features: ({ rootFeatures }) => {
return [
...rootFeatures,
HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }),
FixedToolbarFeature(),
InlineToolbarFeature(),
]
},
}),
label: false,
},
linkGroup({
overrides: {
maxRows: 2,
},
}),
{
name: 'media',
type: 'upload',
admin: {
condition: (_, { type } = {}) => ['highImpact', 'mediumImpact'].includes(type),
},
relationTo: 'media',
required: true,
},
],
label: false,
}