feat: Integrate chat feature into main navigation

- Add a "Chat" link to the main navigation for both desktop and mobile views.
- Include a message icon for visual identification and support for multiple languages (English, Spanish, French).
- Update documentation to reflect navigation integration and usage instructions for the chat feature.
This commit is contained in:
padreug 2025-08-05 20:41:58 +02:00
parent 0b62418310
commit 37642ca48c
6 changed files with 32 additions and 2 deletions

View file

@ -6,7 +6,7 @@ import { useTheme } from '@/components/theme-provider'
import { Button } from '@/components/ui/button'
import { Badge } from '@/components/ui/badge'
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'
import { Sun, Moon, Menu, X, User, LogOut, Ticket, Wallet } from 'lucide-vue-next'
import { Sun, Moon, Menu, X, User, LogOut, Ticket, Wallet, MessageSquare } from 'lucide-vue-next'
import LanguageSwitcher from '@/components/LanguageSwitcher.vue'
import LoginDialog from '@/components/auth/LoginDialog.vue'
import ProfileDialog from '@/components/auth/ProfileDialog.vue'
@ -31,6 +31,7 @@ const navigation = computed<NavigationItem[]>(() => [
{ name: t('nav.home'), href: '/' },
{ name: t('nav.events'), href: '/events' },
{ name: t('nav.market'), href: '/market' },
{ name: t('nav.chat'), href: '/chat' },
])
// Compute total wallet balance
@ -90,6 +91,8 @@ const handleLogout = async () => {
:class="{
'text-foreground': $route.path === item.href
}">
<!-- Chat icon -->
<MessageSquare v-if="item.href === '/chat'" class="h-4 w-4" />
{{ item.name }}
<!-- Market preloading indicator -->
<div v-if="item.href === '/market' && marketPreloader.isPreloading"
@ -227,6 +230,8 @@ const handleLogout = async () => {
:class="{
'text-foreground': $route.path === item.href
}" @click="isOpen = false">
<!-- Chat icon -->
<MessageSquare v-if="item.href === '/chat'" class="h-4 w-4" />
{{ item.name }}
<!-- Market preloading indicator -->
<div v-if="item.href === '/market' && marketPreloader.isPreloading"

View file

@ -8,6 +8,7 @@ const messages: LocaleMessages = {
faq: 'FAQ',
events: 'Events',
market: 'Market',
chat: 'Chat',
login: 'Login',
logout: 'Logout'
},

View file

@ -8,6 +8,7 @@ const messages: LocaleMessages = {
faq: 'Preguntas Frecuentes',
events: 'Eventos',
market: 'Mercado',
chat: 'Chat',
login: 'Iniciar Sesión',
logout: 'Cerrar Sesión'
},

View file

@ -8,6 +8,7 @@ const messages: LocaleMessages = {
faq: 'FAQ',
events: 'Événements',
market: 'Marché',
chat: 'Chat',
login: 'Connexion',
logout: 'Déconnexion'
},

View file

@ -6,6 +6,7 @@ export interface LocaleMessages {
faq: string
events: string
market: string
chat: string
login: string
logout: string
}