From b323e3b70ad06167c268d5ef326ead64865bc1d6 Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 25 Jul 2022 03:12:31 +0000 Subject: [PATCH] Add Uploads collection --- .gitignore | 1 + src/collections/EventTypes.ts | 2 +- src/collections/Events.ts | 17 +++++++++++++++++ src/collections/Uploads.ts | 12 ++++++++++++ src/payload-types.ts | 17 +++++++++++++++++ src/payload.config.ts | 4 +++- 6 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/collections/Uploads.ts diff --git a/.gitignore b/.gitignore index 16075f2..fb87757 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ src/media .eslintcache .*.swp public/output.css +src/uploads diff --git a/src/collections/EventTypes.ts b/src/collections/EventTypes.ts index 22f6535..09e9991 100644 --- a/src/collections/EventTypes.ts +++ b/src/collections/EventTypes.ts @@ -19,7 +19,7 @@ const EventTypes: CollectionConfig = { }; const pickColour = (str) => { - return `hsl(${hashCode(str) % 360}, 100%, 50%)`; + return `hsl(${hashCode(str) % 360}, 100%, 65%)`; }; doc.backgroundColour = pickColour(doc.name); diff --git a/src/collections/Events.ts b/src/collections/Events.ts index c30ef9b..1d059b5 100644 --- a/src/collections/Events.ts +++ b/src/collections/Events.ts @@ -118,6 +118,23 @@ const Events: CollectionConfig = { name: 'notes', label: 'Notes', type: 'textarea' + }, + { + name: 'uploads', + label: 'Uploads', + type: 'array', + labels: { + singular: 'file', + plural: 'files' + }, + fields: [ + { + name: 'upload', + type: 'upload', + relationTo: 'uploads', + required: true + } + ] } ] }; diff --git a/src/collections/Uploads.ts b/src/collections/Uploads.ts new file mode 100644 index 0000000..7d9dc5a --- /dev/null +++ b/src/collections/Uploads.ts @@ -0,0 +1,12 @@ +import { CollectionConfig } from 'payload/types'; + +const Uploads: CollectionConfig = { + slug: 'uploads', + upload: { + staticURL: '/uploads', + staticDir: 'uploads' + }, + fields: [] +}; + +export default Uploads; diff --git a/src/payload-types.ts b/src/payload-types.ts index 1c926b0..1ab5aca 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -43,4 +43,21 @@ export interface Event { end?: string; location?: string; notes?: string; + uploads: { + upload: string | Upload; + id?: string; + }[]; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "uploads". + */ +export interface Upload { + id: string; + url?: string; + filename?: string; + mimeType?: string; + filesize?: number; + createdAt: string; + updatedAt: string; } diff --git a/src/payload.config.ts b/src/payload.config.ts index 5887951..29621ce 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -3,6 +3,7 @@ import path from 'path'; import EventTypes from './collections/EventTypes'; import Events from './collections/Events'; +import Uploads from './collections/Uploads'; import Users from './collections/Users'; export default buildConfig({ @@ -13,7 +14,8 @@ export default buildConfig({ collections: [ Users, EventTypes, - Events + Events, + Uploads, ], typescript: { outputFile: path.resolve(__dirname, 'payload-types.ts')