import { payloadCloudPlugin } from '@payloadcms/payload-cloud' // import { formBuilderPlugin } from '@payloadcms/plugin-form-builder' import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs' import { seoPlugin } from '@payloadcms/plugin-seo' import { s3Storage } from '@payloadcms/storage-s3' import { Plugin } from 'payload' import { GenerateTitle, GenerateURL } from '@payloadcms/plugin-seo/types' // import { FixedToolbarFeature, HeadingFeature, lexicalEditor } from '@payloadcms/richtext-lexical' import { Customer, Event, Post } from '@/payload-types' import { getServerSideURL } from '@/utilities/getURL' const siteName = 'Supabase' const generateTitle: GenerateTitle = ({ doc, collectionSlug }) => { switch (collectionSlug) { case 'customers': return `${doc.name} | ${siteName} Customer Stories` case 'events': return `${doc.title} | ${siteName} Events` case 'posts': return doc.title default: return `${doc.title} | ${siteName}` } } const generateURL: GenerateURL = ({ doc }) => { const url = getServerSideURL() return doc?.slug ? `${url}/${doc.slug}` : url } export const plugins: Plugin[] = [ nestedDocsPlugin({ collections: ['categories'], generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), }), seoPlugin({ generateTitle, generateURL, }), // formBuilderPlugin({ // fields: { // payment: false, // }, // formOverrides: { // fields: ({ defaultFields }) => { // return defaultFields.map((field) => { // if ('name' in field && field.name === 'confirmationMessage') { // return { // ...field, // editor: lexicalEditor({ // features: ({ rootFeatures }) => { // return [ // ...rootFeatures, // FixedToolbarFeature(), // HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), // ] // }, // }), // } // } // return field // }) // }, // }, // }), payloadCloudPlugin(), s3Storage({ collections: { media: { prefix: 'media', }, }, bucket: process.env.S3_BUCKET || '', config: { forcePathStyle: true, credentials: { accessKeyId: process.env.S3_ACCESS_KEY_ID || '', secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || '', }, region: process.env.S3_REGION, endpoint: process.env.S3_ENDPOINT, }, }), ]