From dc258de3c2be0e3be0ca0491f1739b8d46925c32 Mon Sep 17 00:00:00 2001 From: IMB11 Date: Mon, 28 Jul 2025 17:06:57 +0100 Subject: [PATCH] fix: issues --- packages/moderation/data/nags/description.ts | 2 +- packages/moderation/data/nags/links.ts | 8 ++++---- packages/moderation/data/nags/tags.ts | 5 ++++- packages/utils/types.ts | 10 +++++----- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/moderation/data/nags/description.ts b/packages/moderation/data/nags/description.ts index be3d8e3c6..966519b83 100644 --- a/packages/moderation/data/nags/description.ts +++ b/packages/moderation/data/nags/description.ts @@ -153,7 +153,7 @@ export const descriptionNags: Nag[] = [ defineMessage({ id: 'nags.summary-too-short.description', defaultMessage: - "Your summary is {length} characters. It's recommended to have at least {minChars} characters to provide users with enough information about your project.", + 'Your summary is {length} characters. It should ideally be around {minChars} characters, one short sentence about your project.', }), { length: context.project.description?.length || 0, diff --git a/packages/moderation/data/nags/links.ts b/packages/moderation/data/nags/links.ts index b2282b3b6..750bdddb6 100644 --- a/packages/moderation/data/nags/links.ts +++ b/packages/moderation/data/nags/links.ts @@ -27,8 +27,8 @@ export const commonLinkDomains = { ], } -export function isCommonUrl(url: string | undefined, commonDomains: string[]): boolean { - if (!url) return false +export function isCommonUrl(url: string | null, commonDomains: string[]): boolean { + if (url === null || url === '') return true try { const domain = new URL(url).hostname.toLowerCase() return commonDomains.some((allowed) => domain.includes(allowed)) @@ -37,8 +37,8 @@ export function isCommonUrl(url: string | undefined, commonDomains: string[]): b } } -export function isUncommonLicenseUrl(url: string | undefined, domains: string[]): boolean { - if (!url) return false +export function isUncommonLicenseUrl(url: string | null, domains: string[]): boolean { + if (url === null || url === '') return false try { const domain = new URL(url).hostname.toLowerCase() return domains.some((uncommonDomain) => domain.includes(uncommonDomain)) diff --git a/packages/moderation/data/nags/tags.ts b/packages/moderation/data/nags/tags.ts index a6b0a04c4..31f1072e0 100644 --- a/packages/moderation/data/nags/tags.ts +++ b/packages/moderation/data/nags/tags.ts @@ -130,7 +130,10 @@ export const tagsNags: Nag[] = [ ) const totalSelectedTags = context.project.categories.length + (context.project.additional_categories?.length || 0) - return totalSelectedTags === categoriesForProjectType.length + return ( + totalSelectedTags === categoriesForProjectType.length && + context.project.project_type !== 'project' + ) }, link: { path: 'settings/tags', diff --git a/packages/utils/types.ts b/packages/utils/types.ts index a56bc3c56..71a57e347 100644 --- a/packages/utils/types.ts +++ b/packages/utils/types.ts @@ -18,7 +18,7 @@ export type DonationPlatform = | { short: 'ko-fi'; name: 'Ko-fi' } | { short: 'other'; name: 'Other' } -export type ProjectType = 'mod' | 'modpack' | 'resourcepack' | 'shader' +export type ProjectType = 'mod' | 'modpack' | 'resourcepack' | 'shader' | 'project' export type MonetizationStatus = 'monetized' | 'demonetized' | 'force-demonetized' export type GameVersion = string @@ -69,10 +69,10 @@ export interface Project { thread_id: ModrinthId organization: ModrinthId - issues_url?: string - source_url?: string - wiki_url?: string - discord_url?: string + issues_url: string | null + source_url: string | null + wiki_url: string | null + discord_url: string | null donation_urls: DonationLink[] published: string