Files
AstralRinth/apps/frontend/src/pages/discover.vue
Prospector 1bbb01bd42 devex: migrate to vue-i18n (#4966)
* sample languages refactor

* feat: consistency + dedupe impl of i18n

* fix: broken imports

* fix: intl formatted component

* fix: use relative imports

* fix: imports

* fix: comment out incomplete locales + fix imports

* feat: cleanup

* fix: ui imports

* fix: lint

* fix: admonition import

* make footer a component, fix language reactivity

* make copyright notice untranslatable

---------

Co-authored-by: Calum H. <contact@cal.engineer>
2025-12-27 21:37:37 +00:00

66 lines
1.7 KiB
Vue

<script setup lang="ts">
import { commonProjectTypeCategoryMessages, useVIntl } from '@modrinth/ui'
import NavTabs from '~/components/ui/NavTabs.vue'
const { formatMessage } = useVIntl()
const flags = useFeatureFlags()
const cosmetics = useCosmetics()
const route = useRoute()
const allowTabChanging = computed(() => !route.query.sid)
const selectableProjectTypes = [
{
label: formatMessage(commonProjectTypeCategoryMessages.mod),
href: `/discover/mods`,
type: 'mods',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.resourcepack),
href: `/discover/resourcepacks`,
type: 'resourcepacks',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.datapack),
href: `/discover/datapacks`,
type: 'datapacks',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.shader),
href: `/discover/shaders`,
type: 'shaders',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.modpack),
href: `/discover/modpacks`,
type: 'modpacks',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.plugin),
href: `/discover/plugins`,
type: 'plugins',
},
{
label: formatMessage(commonProjectTypeCategoryMessages.server),
href: `/discover/servers`,
type: 'servers',
shown: flags.value.serverDiscovery,
},
]
</script>
<template>
<div class="new-page sidebar" :class="{ 'alt-layout': !cosmetics.rightSearchLayout }">
<section class="normal-page__header mb-4 flex flex-col gap-4">
<div id="discover-header-prefix" class="empty:hidden"></div>
<NavTabs
v-if="!flags.projectTypesPrimaryNav && allowTabChanging"
:links="selectableProjectTypes"
class="hidden md:flex"
/>
</section>
<NuxtPage />
</div>
</template>