From 1f2257e726f6cb77d543a8c5e87ef95e9eae342c Mon Sep 17 00:00:00 2001 From: andrashee Date: Fri, 22 Nov 2024 11:01:01 +0100 Subject: [PATCH] feature(shared): links & slug --- admin/src/collections/Campaigns.ts | 34 ++++++++++++++++++++++++++++++ shared/src/types/campaign.ts | 11 ++++++++++ 2 files changed, 45 insertions(+) diff --git a/admin/src/collections/Campaigns.ts b/admin/src/collections/Campaigns.ts index 1660ae6d3..f1c82de9b 100644 --- a/admin/src/collections/Campaigns.ts +++ b/admin/src/collections/Campaigns.ts @@ -68,6 +68,36 @@ export const campaignsCollection = buildAuditedCollection({ description: 'Visible in the fundraising page.', multiline: true, }, + link_website: { + title: 'Website Link', + dataType: 'string', + validation: { required: false }, + description: 'The link to the website (optional)', + }, + link_instagram: { + title: 'Instagram Link', + dataType: 'string', + validation: { required: false }, + description: 'The link to the Instagram profile (optional)', + }, + link_tiktok: { + title: 'TikTok Link', + dataType: 'string', + validation: { required: false }, + description: 'The link to the TikTok profile (optional)', + }, + link_facebook: { + title: 'Facebook Link', + dataType: 'string', + validation: { required: false }, + description: 'The link to the Facebook profile (optional)', + }, + link_x: { + title: 'X (formerly Twitter) Link', + dataType: 'string', + validation: { required: false }, + description: 'The link to the X profile (optional)', + }, amount_collected_chf: { dataType: 'number', name: 'Collected amount in CHF', @@ -116,6 +146,10 @@ export const campaignsCollection = buildAuditedCollection({ description: 'Featured on campaign overview', defaultValue: false, }, + slug: { + dataType: 'string', + name: 'Url Slug', + }, metadata_description: { dataType: 'string', name: 'Metadata Description', diff --git a/shared/src/types/campaign.ts b/shared/src/types/campaign.ts index 125a72df3..90c98ef8c 100644 --- a/shared/src/types/campaign.ts +++ b/shared/src/types/campaign.ts @@ -12,6 +12,11 @@ export type Campaign = { second_description?: string; third_description_title?: string; third_description?: string; + link_website?: string; + link_instagram?: string; + link_tiktok?: string; + link_facebook?: string; + link_x?: string; amount_collected_chf: number; // automatically updated by incoming payments. contributions: number; // automatically updated by incoming payments. goal?: number; @@ -20,6 +25,7 @@ export type Campaign = { status: CampaignStatus; public?: boolean; featured?: boolean; + slug?: string; // optional, for nicer url instead of firestore id metadata_description?: string; metadata_ogImage?: string; metadata_twitterImage?: string; @@ -29,3 +35,8 @@ export enum CampaignStatus { Active = 'active', Inactive = 'inactive', } + +export type Link = { + name: string; + url: string; +};