feat(cms): clarify sponsor ordering
This commit is contained in:
@@ -1,8 +1,14 @@
|
||||
import type { CollectionConfig } from 'payload'
|
||||
import type { CollectionConfig, NumberFieldSingleValidation } from 'payload'
|
||||
|
||||
import { authenticated } from '@/access/authenticated'
|
||||
import { authenticatedOrPublished } from '@/access/authenticatedOrPublished'
|
||||
import { populatePublishedAt } from '@/hooks/populatePublishedAt'
|
||||
import { sponsorTierNumbers } from '@/spa/sponsorHierarchy'
|
||||
|
||||
export const validatePartnerTier: NumberFieldSingleValidation = (value) =>
|
||||
typeof value === 'number' && sponsorTierNumbers.some((tier) => tier === value)
|
||||
? true
|
||||
: 'Tier must be one of 1, 2, or 3.'
|
||||
|
||||
export const Partners: CollectionConfig = {
|
||||
slug: 'partners',
|
||||
@@ -17,7 +23,15 @@ export const Partners: CollectionConfig = {
|
||||
update: authenticated,
|
||||
},
|
||||
admin: {
|
||||
defaultColumns: ['name', 'tier', 'sortOrder', 'active', 'showOnHomepage', 'updatedAt'],
|
||||
defaultColumns: [
|
||||
'name',
|
||||
'tier',
|
||||
'sortOrder',
|
||||
'_status',
|
||||
'active',
|
||||
'showOnHomepage',
|
||||
'updatedAt',
|
||||
],
|
||||
group: 'Inhalte',
|
||||
useAsTitle: 'name',
|
||||
},
|
||||
@@ -40,14 +54,21 @@ export const Partners: CollectionConfig = {
|
||||
name: 'tier',
|
||||
type: 'number',
|
||||
defaultValue: 3,
|
||||
min: 1,
|
||||
max: 3,
|
||||
required: true,
|
||||
validate: validatePartnerTier,
|
||||
admin: {
|
||||
description: 'Only tiers 1, 2, and 3 are supported.',
|
||||
step: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'sortOrder',
|
||||
type: 'number',
|
||||
defaultValue: 100,
|
||||
admin: {
|
||||
description: 'Lower numbers appear earlier on partner surfaces.',
|
||||
description: 'Lower numbers appear earlier within the selected tier on partner surfaces.',
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -68,7 +89,8 @@ export const Partners: CollectionConfig = {
|
||||
relationTo: 'media',
|
||||
required: true,
|
||||
admin: {
|
||||
description: 'Partner logo displayed on partner cards, the detail modal, and the homepage ticker.',
|
||||
description:
|
||||
'Partner logo displayed on partner cards, the detail modal, and the homepage ticker.',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -2171,9 +2171,12 @@ export interface Partner {
|
||||
* Stable machine-readable key used when migrating or matching partner records.
|
||||
*/
|
||||
stableId?: string | null;
|
||||
/**
|
||||
* Only tiers 1, 2, and 3 are supported.
|
||||
*/
|
||||
tier: number;
|
||||
/**
|
||||
* Lower numbers appear earlier on partner surfaces.
|
||||
* Lower numbers appear earlier within the selected tier on partner surfaces.
|
||||
*/
|
||||
sortOrder?: number | null;
|
||||
active?: boolean | null;
|
||||
|
||||
Reference in New Issue
Block a user