Clean up formatters from prev PR (#5254)
This commit is contained in:
@@ -18,7 +18,7 @@ import {
|
|||||||
Chips,
|
Chips,
|
||||||
Combobox,
|
Combobox,
|
||||||
defineMessages,
|
defineMessages,
|
||||||
getTagMessageOrDefault,
|
formatLoader,
|
||||||
injectNotificationManager,
|
injectNotificationManager,
|
||||||
useVIntl,
|
useVIntl,
|
||||||
} from '@modrinth/ui'
|
} from '@modrinth/ui'
|
||||||
@@ -563,10 +563,7 @@ const messages = defineMessages({
|
|||||||
? modpackVersion
|
? modpackVersion
|
||||||
? modpackVersion?.version_number
|
? modpackVersion?.version_number
|
||||||
: 'Unknown version'
|
: 'Unknown version'
|
||||||
: (() => {
|
: formatLoader(formatMessage, instance.loader)
|
||||||
const message = getTagMessageOrDefault(instance.loader, 'loader')
|
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
})()
|
|
||||||
}}
|
}}
|
||||||
<template v-if="instance.loader !== 'vanilla' && !modpackProject">
|
<template v-if="instance.loader !== 'vanilla' && !modpackProject">
|
||||||
{{ instance.loader_version || formatMessage(messages.unknownVersion) }}
|
{{ instance.loader_version || formatMessage(messages.unknownVersion) }}
|
||||||
@@ -676,10 +673,7 @@ const messages = defineMessages({
|
|||||||
<h2 class="m-0 mt-4 text-lg font-extrabold text-contrast block">
|
<h2 class="m-0 mt-4 text-lg font-extrabold text-contrast block">
|
||||||
{{
|
{{
|
||||||
formatMessage(messages.loaderVersion, {
|
formatMessage(messages.loaderVersion, {
|
||||||
loader: (() => {
|
loader: formatLoader(formatMessage, loader),
|
||||||
const message = getTagMessageOrDefault(loader, 'loader')
|
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
})(),
|
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
</h2>
|
</h2>
|
||||||
@@ -713,10 +707,7 @@ const messages = defineMessages({
|
|||||||
? messages.alreadyInstalledVanilla
|
? messages.alreadyInstalledVanilla
|
||||||
: messages.alreadyInstalledModded,
|
: messages.alreadyInstalledModded,
|
||||||
{
|
{
|
||||||
platform: (() => {
|
platform: formatLoader(formatMessage, loader),
|
||||||
const message = getTagMessageOrDefault(loader, 'loader')
|
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
})(),
|
|
||||||
version: instance.loader_version,
|
version: instance.loader_version,
|
||||||
game_version: gameVersion,
|
game_version: gameVersion,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -146,8 +146,7 @@
|
|||||||
? 'All platforms'
|
? 'All platforms'
|
||||||
: filtersRef?.selectedPlatforms
|
: filtersRef?.selectedPlatforms
|
||||||
.map((x) => {
|
.map((x) => {
|
||||||
const message = getTagMessageOrDefault(x, 'loader')
|
return formatLoader(formatMessage, x)
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
})
|
})
|
||||||
.join(', ')
|
.join(', ')
|
||||||
}}
|
}}
|
||||||
@@ -260,7 +259,7 @@ import {
|
|||||||
Checkbox,
|
Checkbox,
|
||||||
Combobox,
|
Combobox,
|
||||||
CopyCode,
|
CopyCode,
|
||||||
getTagMessageOrDefault,
|
formatLoader,
|
||||||
NewModal,
|
NewModal,
|
||||||
TagItem,
|
TagItem,
|
||||||
useVIntl,
|
useVIntl,
|
||||||
@@ -436,10 +435,7 @@ const formattedVersions = computed(() => {
|
|||||||
if (secondLoaderPosition === -1) return -1
|
if (secondLoaderPosition === -1) return -1
|
||||||
return firstLoaderPosition - secondLoaderPosition
|
return firstLoaderPosition - secondLoaderPosition
|
||||||
})
|
})
|
||||||
.map((loader: string) => {
|
.map((loader: string) => formatLoader(formatMessage, loader)),
|
||||||
const message = getTagMessageOrDefault(loader, 'loader')
|
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -66,11 +66,7 @@
|
|||||||
v-for="category in categoryLists[header]"
|
v-for="category in categoryLists[header]"
|
||||||
:key="`category-${header}-${category.name}`"
|
:key="`category-${header}-${category.name}`"
|
||||||
:model-value="current.selectedTags.includes(category)"
|
:model-value="current.selectedTags.includes(category)"
|
||||||
:description="
|
:description="formatCategory(formatMessage, category.name)"
|
||||||
typeof getTagMessageOrDefault(category.name, 'category') === 'string'
|
|
||||||
? getTagMessageOrDefault(category.name, 'category')
|
|
||||||
: formatMessage(getTagMessageOrDefault(category.name, 'category'))
|
|
||||||
"
|
|
||||||
class="category-selector"
|
class="category-selector"
|
||||||
@update:model-value="toggleCategory(category)"
|
@update:model-value="toggleCategory(category)"
|
||||||
>
|
>
|
||||||
@@ -106,11 +102,7 @@
|
|||||||
:key="`featured-category-${category.name}`"
|
:key="`featured-category-${category.name}`"
|
||||||
class="category-selector"
|
class="category-selector"
|
||||||
:model-value="current.featuredTags.includes(category)"
|
:model-value="current.featuredTags.includes(category)"
|
||||||
:description="
|
:description="formatCategory(formatMessage, category.name)"
|
||||||
typeof getTagMessageOrDefault(category.name, 'category') === 'string'
|
|
||||||
? getTagMessageOrDefault(category.name, 'category')
|
|
||||||
: formatMessage(getTagMessageOrDefault(category.name, 'category'))
|
|
||||||
"
|
|
||||||
:disabled="current.featuredTags.length >= 3 && !current.featuredTags.includes(category)"
|
:disabled="current.featuredTags.length >= 3 && !current.featuredTags.includes(category)"
|
||||||
@update:model-value="toggleFeaturedCategory(category)"
|
@update:model-value="toggleFeaturedCategory(category)"
|
||||||
>
|
>
|
||||||
@@ -143,8 +135,8 @@
|
|||||||
import { getCategoryIcon, StarIcon, TriangleAlertIcon } from '@modrinth/assets'
|
import { getCategoryIcon, StarIcon, TriangleAlertIcon } from '@modrinth/assets'
|
||||||
import {
|
import {
|
||||||
Checkbox,
|
Checkbox,
|
||||||
|
formatCategory,
|
||||||
FormattedTag,
|
FormattedTag,
|
||||||
getTagMessageOrDefault,
|
|
||||||
injectProjectPageContext,
|
injectProjectPageContext,
|
||||||
UnsavedChangesPopup,
|
UnsavedChangesPopup,
|
||||||
useSavable,
|
useSavable,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
import { useVIntl } from '../../composables'
|
import { useVIntl } from '../../composables'
|
||||||
import { getTagMessageOrDefault } from '../../utils/tag-messages.ts'
|
import { formatTag } from '../../utils/tag-messages.ts'
|
||||||
|
|
||||||
const { formatMessage } = useVIntl()
|
const { formatMessage } = useVIntl()
|
||||||
|
|
||||||
@@ -11,9 +11,9 @@ const props = defineProps<{
|
|||||||
enforceType?: 'loader' | 'category'
|
enforceType?: 'loader' | 'category'
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const message = computed(() => getTagMessageOrDefault(props.tag, props.enforceType))
|
const message = computed(() => formatTag(formatMessage, props.tag, props.enforceType))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
{{ typeof message === 'string' ? message : formatMessage(message) }}
|
{{ message }}
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<slot />
|
<slot />
|
||||||
<span v-for="category in categories.filter((x) => !!x)" :key="category">
|
<span v-for="category in categories.filter((x) => !!x)" :key="category">
|
||||||
<component :is="getTagIcon(category)" v-if="getTagIcon(category)" />
|
<component :is="getTagIcon(category)" v-if="getTagIcon(category)" />
|
||||||
{{ getFormattedMessage(category) }}
|
{{ formatTag(formatMessage, category) }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -11,18 +11,13 @@
|
|||||||
import { getTagIcon } from '@modrinth/assets'
|
import { getTagIcon } from '@modrinth/assets'
|
||||||
|
|
||||||
import { useVIntl } from '../../composables'
|
import { useVIntl } from '../../composables'
|
||||||
import { getTagMessageOrDefault } from '../../utils/tag-messages.ts'
|
import { formatTag } from '../../utils/tag-messages.ts'
|
||||||
|
|
||||||
const { formatMessage } = useVIntl()
|
const { formatMessage } = useVIntl()
|
||||||
|
|
||||||
defineProps<{
|
defineProps<{
|
||||||
categories: string[]
|
categories: string[]
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const getFormattedMessage = (tag: string) => {
|
|
||||||
const message = getTagMessageOrDefault(tag)
|
|
||||||
return typeof message === 'string' ? message : formatMessage(message)
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { type Component, computed, readonly, type Ref, ref } from 'vue'
|
|||||||
import { type LocationQueryRaw, type LocationQueryValue, useRoute } from 'vue-router'
|
import { type LocationQueryRaw, type LocationQueryValue, useRoute } from 'vue-router'
|
||||||
|
|
||||||
import { defineMessage, useVIntl } from '../composables/i18n'
|
import { defineMessage, useVIntl } from '../composables/i18n'
|
||||||
import { getTagMessageOrDefault } from './tag-messages.ts'
|
import { formatCategory, formatLoader } from './tag-messages.ts'
|
||||||
|
|
||||||
type BaseOption = {
|
type BaseOption = {
|
||||||
id: string
|
id: string
|
||||||
@@ -144,10 +144,9 @@ export function useSearch(
|
|||||||
options: [],
|
options: [],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const message = getTagMessageOrDefault(category.name, 'category')
|
|
||||||
categoryFilters[filterTypeId].options.push({
|
categoryFilters[filterTypeId].options.push({
|
||||||
id: category.name,
|
id: category.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatCategory(formatMessage, category.name),
|
||||||
icon: getCategoryIcon(category.name),
|
icon: getCategoryIcon(category.name),
|
||||||
value: `categories:${category.name}`,
|
value: `categories:${category.name}`,
|
||||||
method: category.header === 'resolutions' ? 'or' : 'and',
|
method: category.header === 'resolutions' ? 'or' : 'and',
|
||||||
@@ -256,10 +255,9 @@ export function useSearch(
|
|||||||
!loader.supported_project_types.includes('datapack'),
|
!loader.supported_project_types.includes('datapack'),
|
||||||
)
|
)
|
||||||
.map((loader) => {
|
.map((loader) => {
|
||||||
const message = getTagMessageOrDefault(loader.name, 'loader')
|
|
||||||
return {
|
return {
|
||||||
id: loader.name,
|
id: loader.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatLoader(formatMessage, loader.name),
|
||||||
icon: getLoaderIcon(loader.name),
|
icon: getLoaderIcon(loader.name),
|
||||||
method: 'or',
|
method: 'or',
|
||||||
value: `categories:${loader.name}`,
|
value: `categories:${loader.name}`,
|
||||||
@@ -283,10 +281,9 @@ export function useSearch(
|
|||||||
options: tags.value.loaders
|
options: tags.value.loaders
|
||||||
.filter((loader) => loader.supported_project_types.includes('modpack'))
|
.filter((loader) => loader.supported_project_types.includes('modpack'))
|
||||||
.map((loader) => {
|
.map((loader) => {
|
||||||
const message = getTagMessageOrDefault(loader.name, 'loader')
|
|
||||||
return {
|
return {
|
||||||
id: loader.name,
|
id: loader.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatLoader(formatMessage, loader.name),
|
||||||
icon: getLoaderIcon(loader.name),
|
icon: getLoaderIcon(loader.name),
|
||||||
method: 'or',
|
method: 'or',
|
||||||
value: `categories:${loader.name}`,
|
value: `categories:${loader.name}`,
|
||||||
@@ -313,10 +310,9 @@ export function useSearch(
|
|||||||
!PLUGIN_PLATFORMS.includes(loader.name),
|
!PLUGIN_PLATFORMS.includes(loader.name),
|
||||||
)
|
)
|
||||||
.map((loader) => {
|
.map((loader) => {
|
||||||
const message = getTagMessageOrDefault(loader.name, 'loader')
|
|
||||||
return {
|
return {
|
||||||
id: loader.name,
|
id: loader.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatLoader(formatMessage, loader.name),
|
||||||
icon: getLoaderIcon(loader.name),
|
icon: getLoaderIcon(loader.name),
|
||||||
method: 'or',
|
method: 'or',
|
||||||
value: `categories:${loader.name}`,
|
value: `categories:${loader.name}`,
|
||||||
@@ -339,10 +335,9 @@ export function useSearch(
|
|||||||
options: tags.value.loaders
|
options: tags.value.loaders
|
||||||
.filter((loader) => PLUGIN_PLATFORMS.includes(loader.name))
|
.filter((loader) => PLUGIN_PLATFORMS.includes(loader.name))
|
||||||
.map((loader) => {
|
.map((loader) => {
|
||||||
const message = getTagMessageOrDefault(loader.name, 'loader')
|
|
||||||
return {
|
return {
|
||||||
id: loader.name,
|
id: loader.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatLoader(formatMessage, loader.name),
|
||||||
icon: getLoaderIcon(loader.name),
|
icon: getLoaderIcon(loader.name),
|
||||||
method: 'or',
|
method: 'or',
|
||||||
value: `categories:${loader.name}`,
|
value: `categories:${loader.name}`,
|
||||||
@@ -366,10 +361,9 @@ export function useSearch(
|
|||||||
options: tags.value.loaders
|
options: tags.value.loaders
|
||||||
.filter((loader) => loader.supported_project_types.includes('shader'))
|
.filter((loader) => loader.supported_project_types.includes('shader'))
|
||||||
.map((loader) => {
|
.map((loader) => {
|
||||||
const message = getTagMessageOrDefault(loader.name, 'loader')
|
|
||||||
return {
|
return {
|
||||||
id: loader.name,
|
id: loader.name,
|
||||||
formatted_name: typeof message === 'string' ? message : formatMessage(message),
|
formatted_name: formatLoader(formatMessage, loader.name),
|
||||||
icon: getLoaderIcon(loader.name),
|
icon: getLoaderIcon(loader.name),
|
||||||
method: 'or',
|
method: 'or',
|
||||||
value: `categories:${loader.name}`,
|
value: `categories:${loader.name}`,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { capitalizeString } from '@modrinth/utils'
|
import { capitalizeString } from '@modrinth/utils'
|
||||||
|
|
||||||
import { defineMessages, type MessageDescriptor } from '../composables/i18n'
|
import { defineMessages, type MessageDescriptor, type VIntlFormatters } from '../composables/i18n'
|
||||||
|
|
||||||
export const loaderMessages = defineMessages({
|
export const loaderMessages = defineMessages({
|
||||||
babric: {
|
babric: {
|
||||||
@@ -401,9 +401,27 @@ export function getTagMessage(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTagMessageOrDefault(
|
export function getLoaderMessage(loader: string) {
|
||||||
|
return getTagMessage(loader, 'loader')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCategoryMessage(category: string) {
|
||||||
|
return getTagMessage(category, 'category')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function formatTag(
|
||||||
|
formatter: VIntlFormatters['formatMessage'],
|
||||||
tag: string,
|
tag: string,
|
||||||
enforceType?: 'loader' | 'category',
|
enforceType?: 'loader' | 'category',
|
||||||
): MessageDescriptor | string {
|
) {
|
||||||
return getTagMessage(tag, enforceType) ?? capitalizeString(tag)
|
const message = getTagMessage(tag, enforceType)
|
||||||
|
return message ? formatter(message) : capitalizeString(tag)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function formatCategory(formatter: VIntlFormatters['formatMessage'], category: string) {
|
||||||
|
return formatTag(formatter, category, 'category')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function formatLoader(formatter: VIntlFormatters['formatMessage'], category: string) {
|
||||||
|
return formatTag(formatter, category, 'category')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ export const formatProjectType = (name, short = false) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Use tag-messages.ts' `getTagMessageOrDefault(tag)` instead.
|
* @deprecated Use tag-messages.ts' `formatTag(tag)` instead.
|
||||||
*/
|
*/
|
||||||
export const formatCategory = (name) => {
|
export const formatCategory = (name) => {
|
||||||
if (name === 'modloader') {
|
if (name === 'modloader') {
|
||||||
|
|||||||
Reference in New Issue
Block a user