Lorem ipsum dolor sit amet

Test test test

bře 23, 2025
Article by Vojtěch Říha
raptor-image1.png

import type { CollectionConfig } from 'payload'

import { admins } from '../../access/admins'

import { adminsOrPublished } from './access/adminsOrPublished'

import { slugField } from '../../fields/slug'

import { richText } from 'src/fields/richText'

import { InlineToolbarFeature, lexicalEditor, LinkFeature } from '@payloadcms/richtext-lexical'


export const Posts: CollectionConfig = {

  slug: 'posts',

  admin: {

    group: 'Blog',

    useAsTitle: 'title',

    defaultColumns: ['title', 'slug', 'updatedAt'],

    preview: (doc) => {

      return `${process.env.BASE_URL}/blog/${doc.slug !== 'home' ? doc.slug : ''}?preview=1`

    },

  },

  versions: {

    drafts: true,

  },

  access: {

    read: adminsOrPublished,

    update: admins,

    create: admins,

    delete: admins,

  },

  defaultPopulate: {

    title: true,

    featuredImage: true,

    slug: true,

    publishedAt: true,

  },

  fields: [

    {

      name: 'title',

      type: 'text',

      required: true,

    },


    {

      name: 'perex',

      type: 'richText',

      editor: lexicalEditor({

        features: () => [InlineToolbarFeature(), LinkFeature()],

      }),

    },

    {

      name: 'featuredImage',

      type: 'upload',

      relationTo: 'media',

      required: true,

    },

    richText({

      name: 'content',

    }),

    {

      name: 'publishedAt',

      type: 'date',

      admin: {

        position: 'sidebar',

        date: {

          pickerAppearance: 'dayAndTime',

        },

      },

      hooks: {

        beforeChange: [

          ({ siblingData, value }) => {

            if (siblingData._status === 'published' && !value) {

              return new Date()

            }

            return value

          },

        ],

      },

    },

    {

      name: 'isNew',

      label: 'Mark as new',

      type: 'checkbox',

      admin: {

        position: 'sidebar',

      },

    },

    {

      name: 'articleBy',

      type: 'relationship',

      relationTo: 'designers',

      hasMany: true,

      admin: {

        position: 'sidebar',

      },

    },

    {

      name: 'postCategories',

      label: 'Categories',

      type: 'relationship',

      relationTo: 'postCategories',

      hasMany: true,

      required: true,

      admin: {

        position: 'sidebar',

      },

    },

    {

      name: 'relatedFamilies',

      type: 'relationship',

      relationTo: 'families',

      hasMany: true,

      admin: {

        position: 'sidebar',

      },

    },

    slugField(),

  ],

}

Related fonts

Read more stories

5320179-uhd_3840_2160_25fps.mp4
Typo

Test