Compare commits

...
Author SHA1 Message Date
coolbot100s 01f2494621 add excessive languages warning nag 2026-07-01 16:16:15 -07:00
2 changed files with 94 additions and 1 deletions
@@ -1,7 +1,10 @@
import { defineMessage } from '@modrinth/ui'
import { defineMessage, useVIntl } from '@modrinth/ui'
import type { Nag, NagContext } from '../../types/nags'
const MAX_LANGUAGE_COUNT = 10
const ALL_LANGUAGE_COUNT = 72
export const serverProjectsNags: Nag[] = [
{
id: 'select-country',
@@ -25,6 +28,84 @@ export const serverProjectsNags: Nag[] = [
shouldShow: (context: NagContext) => context.currentRoute !== 'type-project-settings-server',
},
},
{
id: 'too-many-languages',
title: defineMessage({
id: 'nags.too-many-languages.title',
defaultMessage: 'Select accurate languages',
}),
description: (context: NagContext) => {
const { formatMessage } = useVIntl()
const languageCount = context.projectV3?.minecraft_server?.languages?.length || 0
const maxLanguageCount = MAX_LANGUAGE_COUNT
return formatMessage(
defineMessage({
id: 'nags.too-many-languages.description',
defaultMessage:
"You've selected {languageCount, plural, one {# language} other {# languages}}. Please list only the languages your server actively supports.",
}),
{
languageCount,
maxLanguageCount,
},
)
},
status: 'warning',
shouldShow: (context: NagContext) => {
const languageCount = context.projectV3?.minecraft_server?.languages?.length || 0
return (
languageCount > MAX_LANGUAGE_COUNT &&
//languageCount <= ALL_LANGUAGE_COUNT &&
context.projectV3?.minecraft_server != null
)
},
link: {
path: 'settings/server',
title: defineMessage({
id: 'nags.server.title',
defaultMessage: 'Visit server settings',
}),
shouldShow: (context: NagContext) => context.currentRoute !== 'type-project-settings-server',
},
},
{
id: 'all-languages',
title: defineMessage({
id: 'nags.all-languages.title',
defaultMessage: 'Select accurate languages',
}),
description: (context: NagContext) => {
const { formatMessage } = useVIntl()
const languageCount = context.projectV3?.minecraft_server?.languages?.length || 0
const allLanguageCount = ALL_LANGUAGE_COUNT
return formatMessage(
defineMessage({
id: 'nags.all-languages.description',
defaultMessage:
"You've selected all available language options. Please list only the languages your server actively supports.",
}),
{
languageCount,
allLanguageCount,
},
)
},
status: 'required',
shouldShow: (context: NagContext) => {
// const languageCount = context.projectV3?.minecraft_server?.languages?.length || 0
return false //languageCount >= ALL_LANGUAGE_COUNT && context.projectV3?.minecraft_server != null
},
link: {
path: 'settings/server',
title: defineMessage({
id: 'nags.server.title',
defaultMessage: 'Visit server settings',
}),
shouldShow: (context: NagContext) => context.currentRoute !== 'type-project-settings-server',
},
},
{
id: 'select-language',
title: defineMessage({
@@ -35,6 +35,12 @@
"nags.add-links.title": {
"defaultMessage": "Add external links"
},
"nags.all-languages.description": {
"defaultMessage": "You've selected all available language options. Please list only the languages your server actively supports."
},
"nags.all-languages.title": {
"defaultMessage": "Select accurate languages"
},
"nags.all-tags-selected.description": {
"defaultMessage": "You've selected all {totalAvailableTags, plural, one {# available tag} other {# available tags}}. This defeats the purpose of tags, which are meant to help users find relevant projects. Please select only the tags that are relevant to your project."
},
@@ -227,6 +233,12 @@
"nags.title-contains-technical-info.title": {
"defaultMessage": "Clean up the name"
},
"nags.too-many-languages.description": {
"defaultMessage": "You've selected {languageCount, plural, one {# language} other {# languages}}. Please list only the languages your server actively supports."
},
"nags.too-many-languages.title": {
"defaultMessage": "Select accurate languages"
},
"nags.too-many-tags-server.description": {
"defaultMessage": "You've selected {tagCount, plural, one {# tag} other {# tags}}. Please reduce to {maxTagCount} or fewer to make sure your server appears in relevant search results."
},