feat(nav): add in-dev sections and coming soon placeholders

Add navigation links for Dish, Events, Actions, Dream Island, and Clothes.
Implement StatusBadge component and ComingSoonView for future content.
This commit is contained in:
2026-05-02 07:55:04 +08:00
parent ec2a21bae6
commit f5ab96c2b1
9 changed files with 564 additions and 5 deletions

View File

@@ -6,12 +6,21 @@ import { useRoute } from 'vue-router';
import { iconClose, iconLogin, iconLogout, iconMenu, iconRegister, iconTranslate, type AppIcon } from '../icons';
import type { AuthUser, Language } from '../services/api';
import PokeBallMark from './PokeBallMark.vue';
import StatusBadge from './StatusBadge.vue';
defineProps<{
currentUser: AuthUser | null;
languages: Language[];
locale: string;
navItems: Array<{ label: string; to: string; icon?: AppIcon }>;
navItems: Array<{
label: string;
to: string;
icon?: AppIcon;
badge?: {
label: string;
tone?: 'info' | 'success' | 'warning' | 'danger' | 'neutral';
};
}>;
}>();
const emit = defineEmits<{
@@ -132,7 +141,14 @@ onBeforeUnmount(() => {
@click="closeSidebar"
>
<Icon v-if="item.icon" :icon="item.icon" class="ui-icon side-nav__icon" aria-hidden="true" />
<span>{{ item.label }}</span>
<span class="side-nav__label">{{ item.label }}</span>
<StatusBadge
v-if="item.badge"
class="side-nav__badge"
:label="item.badge.label"
:tone="item.badge.tone"
compact
/>
</RouterLink>
</nav>