Skip to content

Commit 11f00be

Browse files
authored
Clean up formatters from prev PR (#5254)
1 parent a207dae commit 11f00be

File tree

8 files changed

+45
-59
lines changed

8 files changed

+45
-59
lines changed

apps/app-frontend/src/components/ui/instance_settings/InstallationSettings.vue

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
Chips,
1919
Combobox,
2020
defineMessages,
21-
getTagMessageOrDefault,
21+
formatLoader,
2222
injectNotificationManager,
2323
useVIntl,
2424
} from '@modrinth/ui'
@@ -563,10 +563,7 @@ const messages = defineMessages({
563563
? modpackVersion
564564
? modpackVersion?.version_number
565565
: 'Unknown version'
566-
: (() => {
567-
const message = getTagMessageOrDefault(instance.loader, 'loader')
568-
return typeof message === 'string' ? message : formatMessage(message)
569-
})()
566+
: formatLoader(formatMessage, instance.loader)
570567
}}
571568
<template v-if="instance.loader !== 'vanilla' && !modpackProject">
572569
{{ instance.loader_version || formatMessage(messages.unknownVersion) }}
@@ -676,10 +673,7 @@ const messages = defineMessages({
676673
<h2 class="m-0 mt-4 text-lg font-extrabold text-contrast block">
677674
{{
678675
formatMessage(messages.loaderVersion, {
679-
loader: (() => {
680-
const message = getTagMessageOrDefault(loader, 'loader')
681-
return typeof message === 'string' ? message : formatMessage(message)
682-
})(),
676+
loader: formatLoader(formatMessage, loader),
683677
})
684678
}}
685679
</h2>
@@ -713,10 +707,7 @@ const messages = defineMessages({
713707
? messages.alreadyInstalledVanilla
714708
: messages.alreadyInstalledModded,
715709
{
716-
platform: (() => {
717-
const message = getTagMessageOrDefault(loader, 'loader')
718-
return typeof message === 'string' ? message : formatMessage(message)
719-
})(),
710+
platform: formatLoader(formatMessage, loader),
720711
version: instance.loader_version,
721712
game_version: gameVersion,
722713
},

apps/frontend/src/components/ui/servers/ContentVersionEditModal.vue

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,7 @@
146146
? 'All platforms'
147147
: filtersRef?.selectedPlatforms
148148
.map((x) => {
149-
const message = getTagMessageOrDefault(x, 'loader')
150-
return typeof message === 'string' ? message : formatMessage(message)
149+
return formatLoader(formatMessage, x)
151150
})
152151
.join(', ')
153152
}}
@@ -260,7 +259,7 @@ import {
260259
Checkbox,
261260
Combobox,
262261
CopyCode,
263-
getTagMessageOrDefault,
262+
formatLoader,
264263
NewModal,
265264
TagItem,
266265
useVIntl,
@@ -436,10 +435,7 @@ const formattedVersions = computed(() => {
436435
if (secondLoaderPosition === -1) return -1
437436
return firstLoaderPosition - secondLoaderPosition
438437
})
439-
.map((loader: string) => {
440-
const message = getTagMessageOrDefault(loader, 'loader')
441-
return typeof message === 'string' ? message : formatMessage(message)
442-
}),
438+
.map((loader: string) => formatLoader(formatMessage, loader)),
443439
}
444440
})
445441

apps/frontend/src/pages/[type]/[id]/settings/tags.vue

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,7 @@
6666
v-for="category in categoryLists[header]"
6767
:key="`category-${header}-${category.name}`"
6868
:model-value="current.selectedTags.includes(category)"
69-
:description="
70-
typeof getTagMessageOrDefault(category.name, 'category') === 'string'
71-
? getTagMessageOrDefault(category.name, 'category')
72-
: formatMessage(getTagMessageOrDefault(category.name, 'category'))
73-
"
69+
:description="formatCategory(formatMessage, category.name)"
7470
class="category-selector"
7571
@update:model-value="toggleCategory(category)"
7672
>
@@ -106,11 +102,7 @@
106102
:key="`featured-category-${category.name}`"
107103
class="category-selector"
108104
:model-value="current.featuredTags.includes(category)"
109-
:description="
110-
typeof getTagMessageOrDefault(category.name, 'category') === 'string'
111-
? getTagMessageOrDefault(category.name, 'category')
112-
: formatMessage(getTagMessageOrDefault(category.name, 'category'))
113-
"
105+
:description="formatCategory(formatMessage, category.name)"
114106
:disabled="current.featuredTags.length >= 3 && !current.featuredTags.includes(category)"
115107
@update:model-value="toggleFeaturedCategory(category)"
116108
>
@@ -143,8 +135,8 @@
143135
import { getCategoryIcon, StarIcon, TriangleAlertIcon } from '@modrinth/assets'
144136
import {
145137
Checkbox,
138+
formatCategory,
146139
FormattedTag,
147-
getTagMessageOrDefault,
148140
injectProjectPageContext,
149141
UnsavedChangesPopup,
150142
useSavable,

packages/ui/src/components/base/FormattedTag.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { computed } from 'vue'
33
44
import { useVIntl } from '../../composables'
5-
import { getTagMessageOrDefault } from '../../utils/tag-messages.ts'
5+
import { formatTag } from '../../utils/tag-messages.ts'
66
77
const { formatMessage } = useVIntl()
88
@@ -11,9 +11,9 @@ const props = defineProps<{
1111
enforceType?: 'loader' | 'category'
1212
}>()
1313
14-
const message = computed(() => getTagMessageOrDefault(props.tag, props.enforceType))
14+
const message = computed(() => formatTag(formatMessage, props.tag, props.enforceType))
1515
</script>
1616

1717
<template>
18-
{{ typeof message === 'string' ? message : formatMessage(message) }}
18+
{{ message }}
1919
</template>

packages/ui/src/components/search/Categories.vue

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,21 @@
33
<slot />
44
<span v-for="category in categories.filter((x) => !!x)" :key="category">
55
<component :is="getTagIcon(category)" v-if="getTagIcon(category)" />
6-
{{ getFormattedMessage(category) }}
6+
{{ formatTag(formatMessage, category) }}
77
</span>
88
</div>
99
</template>
1010
<script setup lang="ts">
1111
import { getTagIcon } from '@modrinth/assets'
1212
1313
import { useVIntl } from '../../composables'
14-
import { getTagMessageOrDefault } from '../../utils/tag-messages.ts'
14+
import { formatTag } from '../../utils/tag-messages.ts'
1515
1616
const { formatMessage } = useVIntl()
1717
1818
defineProps<{
1919
categories: string[]
2020
}>()
21-
22-
const getFormattedMessage = (tag: string) => {
23-
const message = getTagMessageOrDefault(tag)
24-
return typeof message === 'string' ? message : formatMessage(message)
25-
}
2621
</script>
2722

2823
<style lang="scss" scoped>

packages/ui/src/utils/search.ts

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { type Component, computed, readonly, type Ref, ref } from 'vue'
55
import { type LocationQueryRaw, type LocationQueryValue, useRoute } from 'vue-router'
66

77
import { defineMessage, useVIntl } from '../composables/i18n'
8-
import { getTagMessageOrDefault } from './tag-messages.ts'
8+
import { formatCategory, formatLoader } from './tag-messages.ts'
99

1010
type BaseOption = {
1111
id: string
@@ -144,10 +144,9 @@ export function useSearch(
144144
options: [],
145145
}
146146
}
147-
const message = getTagMessageOrDefault(category.name, 'category')
148147
categoryFilters[filterTypeId].options.push({
149148
id: category.name,
150-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
149+
formatted_name: formatCategory(formatMessage, category.name),
151150
icon: getCategoryIcon(category.name),
152151
value: `categories:${category.name}`,
153152
method: category.header === 'resolutions' ? 'or' : 'and',
@@ -256,10 +255,9 @@ export function useSearch(
256255
!loader.supported_project_types.includes('datapack'),
257256
)
258257
.map((loader) => {
259-
const message = getTagMessageOrDefault(loader.name, 'loader')
260258
return {
261259
id: loader.name,
262-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
260+
formatted_name: formatLoader(formatMessage, loader.name),
263261
icon: getLoaderIcon(loader.name),
264262
method: 'or',
265263
value: `categories:${loader.name}`,
@@ -283,10 +281,9 @@ export function useSearch(
283281
options: tags.value.loaders
284282
.filter((loader) => loader.supported_project_types.includes('modpack'))
285283
.map((loader) => {
286-
const message = getTagMessageOrDefault(loader.name, 'loader')
287284
return {
288285
id: loader.name,
289-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
286+
formatted_name: formatLoader(formatMessage, loader.name),
290287
icon: getLoaderIcon(loader.name),
291288
method: 'or',
292289
value: `categories:${loader.name}`,
@@ -313,10 +310,9 @@ export function useSearch(
313310
!PLUGIN_PLATFORMS.includes(loader.name),
314311
)
315312
.map((loader) => {
316-
const message = getTagMessageOrDefault(loader.name, 'loader')
317313
return {
318314
id: loader.name,
319-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
315+
formatted_name: formatLoader(formatMessage, loader.name),
320316
icon: getLoaderIcon(loader.name),
321317
method: 'or',
322318
value: `categories:${loader.name}`,
@@ -339,10 +335,9 @@ export function useSearch(
339335
options: tags.value.loaders
340336
.filter((loader) => PLUGIN_PLATFORMS.includes(loader.name))
341337
.map((loader) => {
342-
const message = getTagMessageOrDefault(loader.name, 'loader')
343338
return {
344339
id: loader.name,
345-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
340+
formatted_name: formatLoader(formatMessage, loader.name),
346341
icon: getLoaderIcon(loader.name),
347342
method: 'or',
348343
value: `categories:${loader.name}`,
@@ -366,10 +361,9 @@ export function useSearch(
366361
options: tags.value.loaders
367362
.filter((loader) => loader.supported_project_types.includes('shader'))
368363
.map((loader) => {
369-
const message = getTagMessageOrDefault(loader.name, 'loader')
370364
return {
371365
id: loader.name,
372-
formatted_name: typeof message === 'string' ? message : formatMessage(message),
366+
formatted_name: formatLoader(formatMessage, loader.name),
373367
icon: getLoaderIcon(loader.name),
374368
method: 'or',
375369
value: `categories:${loader.name}`,

packages/ui/src/utils/tag-messages.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { capitalizeString } from '@modrinth/utils'
22

3-
import { defineMessages, type MessageDescriptor } from '../composables/i18n'
3+
import { defineMessages, type MessageDescriptor, type VIntlFormatters } from '../composables/i18n'
44

55
export const loaderMessages = defineMessages({
66
babric: {
@@ -401,9 +401,27 @@ export function getTagMessage(
401401
}
402402
}
403403

404-
export function getTagMessageOrDefault(
404+
export function getLoaderMessage(loader: string) {
405+
return getTagMessage(loader, 'loader')
406+
}
407+
408+
export function getCategoryMessage(category: string) {
409+
return getTagMessage(category, 'category')
410+
}
411+
412+
export function formatTag(
413+
formatter: VIntlFormatters['formatMessage'],
405414
tag: string,
406415
enforceType?: 'loader' | 'category',
407-
): MessageDescriptor | string {
408-
return getTagMessage(tag, enforceType) ?? capitalizeString(tag)
416+
) {
417+
const message = getTagMessage(tag, enforceType)
418+
return message ? formatter(message) : capitalizeString(tag)
419+
}
420+
421+
export function formatCategory(formatter: VIntlFormatters['formatMessage'], category: string) {
422+
return formatTag(formatter, category, 'category')
423+
}
424+
425+
export function formatLoader(formatter: VIntlFormatters['formatMessage'], category: string) {
426+
return formatTag(formatter, category, 'category')
409427
}

packages/utils/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export const formatProjectType = (name, short = false) => {
163163
}
164164

165165
/**
166-
* @deprecated Use tag-messages.ts' `getTagMessageOrDefault(tag)` instead.
166+
* @deprecated Use tag-messages.ts' `formatTag(tag)` instead.
167167
*/
168168
export const formatCategory = (name) => {
169169
if (name === 'modloader') {

0 commit comments

Comments
 (0)