Files
mintel.me/apps/web/src/payload/collections/Media.ts
Marc Mintel db31f06bc0
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 2m1s
Build & Deploy / 🏗️ Build (push) Failing after 15s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
fix: bypass Next.js css loader crash during build by isolating @mintel/payload-ai server imports
2026-03-03 15:30:41 +01:00

66 lines
1.4 KiB
TypeScript

import type { CollectionConfig } from "payload";
import path from "path";
import { fileURLToPath } from "url";
import { replicateMediaHandler } from "@mintel/payload-ai/endpoints/replicateMediaEndpoint.js";
const filename = fileURLToPath(import.meta.url);
const dirname = path.dirname(filename);
export const Media: CollectionConfig = {
slug: "media",
admin: {
useAsTitle: "alt",
defaultColumns: ["filename", "alt", "updatedAt"],
},
access: {
read: () => true, // Publicly readable
},
endpoints: [
{
path: "/:id/ai-process",
method: "post",
handler: replicateMediaHandler as any,
},
],
upload: {
staticDir: path.resolve(dirname, "../../../../public/media"),
adminThumbnail: "thumbnail",
imageSizes: [
{
name: "thumbnail",
width: 400,
height: 300,
position: "centre",
},
{
name: "card",
width: 768,
height: 1024,
position: "centre",
},
{
name: "tablet",
width: 1024,
height: undefined,
position: "centre",
},
],
},
fields: [
{
name: "aiProcessButtons",
type: "ui",
admin: {
components: {
Field: "@mintel/payload-ai/components/AiMediaButtons#AiMediaButtons",
},
},
},
{
name: "alt",
type: "text",
required: true,
},
],
};