feat: add PartnerLogoMark component for dynamic partner logo rendering
This commit is contained in:
@@ -30,11 +30,52 @@ const itemsWithImageUploads = async <T extends { image?: string }>(payload: Payl
|
||||
}),
|
||||
)
|
||||
|
||||
const partnersForPayload = netzwerkContent.partners.items.map(({ id, ...partner }) => ({
|
||||
const partnersForPayload = netzwerkContent.partners.items.map(({ id, ...partner }, index) => ({
|
||||
...partner,
|
||||
stableId: id,
|
||||
active: true,
|
||||
showOnHomepage: true,
|
||||
sortOrder: index,
|
||||
_status: 'published' as const,
|
||||
}))
|
||||
|
||||
async function upsertPartners(payload: Payload) {
|
||||
await Promise.all(
|
||||
partnersForPayload.map(async (partner) => {
|
||||
const existing = await payload.find({
|
||||
collection: 'partners',
|
||||
limit: 1,
|
||||
pagination: false,
|
||||
draft: true,
|
||||
overrideAccess: true,
|
||||
where: {
|
||||
stableId: { equals: partner.stableId },
|
||||
},
|
||||
})
|
||||
|
||||
const doc = existing.docs[0]
|
||||
|
||||
if (doc) {
|
||||
await payload.update({
|
||||
collection: 'partners',
|
||||
id: doc.id,
|
||||
overrideAccess: true,
|
||||
context: { disableRevalidate: true },
|
||||
data: partner as never,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
await payload.create({
|
||||
collection: 'partners',
|
||||
overrideAccess: true,
|
||||
context: { disableRevalidate: true },
|
||||
data: partner as never,
|
||||
})
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const payload = await getPayload({ config })
|
||||
|
||||
@@ -56,6 +97,7 @@ async function main() {
|
||||
const sponsoringImage = await mediaByFilename(payload, netzwerkContent.sponsoring.imageFilename)
|
||||
const { imageFilename: _heroFilename, ...heroContent } = netzwerkContent.hero
|
||||
const { imageFilename: _sponsoringFilename, ...sponsoringContent } = netzwerkContent.sponsoring
|
||||
const { items: _partnerItems, ...partnerSectionContent } = netzwerkContent.partners
|
||||
const [patronPeople, juryMembers] = await Promise.all([
|
||||
itemsWithImageUploads(payload, netzwerkContent.patronage.people),
|
||||
itemsWithImageUploads(payload, netzwerkContent.jury.members),
|
||||
@@ -86,13 +128,14 @@ async function main() {
|
||||
image: sponsoringImage,
|
||||
},
|
||||
partners: {
|
||||
...netzwerkContent.partners,
|
||||
items: partnersForPayload,
|
||||
...partnerSectionContent,
|
||||
},
|
||||
},
|
||||
} as never,
|
||||
})
|
||||
|
||||
await upsertPartners(payload)
|
||||
|
||||
payload.logger.info(`Preloaded Netzwerk CMS fields for page ${page.id}`)
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user