feat: add P2P messages inbox and OKX-style navigation

- Add P2PMessages inbox page listing all trade conversations
- Update P2PDashboard top nav with icon+label buttons (Orders, Ads, Messages)
- Add unread message count badge with realtime subscription
- Add /p2p/messages route
- Add i18n translations for all 6 locales
This commit is contained in:
2026-02-24 03:24:28 +03:00
parent 42bb4140f2
commit 57bbec5cdd
9 changed files with 431 additions and 17 deletions
+13
View File
@@ -1553,6 +1553,19 @@ export default {
'p2pChat.newMessage': 'رسالة جديدة',
'p2pChat.newImage': 'صورة جديدة',
// P2P Navigation
'p2pNav.orders': 'الطلبات',
'p2pNav.ads': 'الإعلانات',
'p2pNav.messages': 'الرسائل',
// P2P Messages Inbox
'p2pMessages.title': 'الرسائل',
'p2pMessages.subtitle': 'محادثات التداول الخاصة بك',
'p2pMessages.noConversations': 'لا توجد محادثات بعد',
'p2pMessages.noConversationsHint': 'ابدأ صفقة لبدء المحادثة',
'p2pMessages.you': 'أنت',
'p2pMessages.sentImage': 'أرسل صورة',
'p2pFilters.filters': 'الفلاتر',
'p2pFilters.filterOrders': 'فلترة الطلبات',
'p2pFilters.reset': 'إعادة تعيين',
+13
View File
@@ -1543,6 +1543,19 @@ export default {
'p2pChat.newMessage': 'نامەی نوێ',
'p2pChat.newImage': 'وێنەی نوێ',
// P2P Navigation
'p2pNav.orders': 'داواکاریەکان',
'p2pNav.ads': 'ڕیکلامەکان',
'p2pNav.messages': 'پەیامەکان',
// P2P Messages Inbox
'p2pMessages.title': 'پەیامەکان',
'p2pMessages.subtitle': 'گفتوگۆکانی بازرگانیت',
'p2pMessages.noConversations': 'هێشتا گفتوگۆ نییە',
'p2pMessages.noConversationsHint': 'بۆ دەستپێکردنی گفتوگۆ بازرگانییەک بکە',
'p2pMessages.you': 'تۆ',
'p2pMessages.sentImage': 'وێنەیەکی ناردووە',
'p2pFilters.filters': 'فلتەرەکان',
'p2pFilters.filterOrders': 'داواکارییەکان فلتەر بکە',
'p2pFilters.reset': 'ڕیسێت',
+13
View File
@@ -1907,6 +1907,19 @@ export default {
'p2pChat.newMessage': 'New Message',
'p2pChat.newImage': 'New Image',
// P2P Navigation
'p2pNav.orders': 'Orders',
'p2pNav.ads': 'Ads',
'p2pNav.messages': 'Messages',
// P2P Messages Inbox
'p2pMessages.title': 'Messages',
'p2pMessages.subtitle': 'Your trade conversations',
'p2pMessages.noConversations': 'No conversations yet',
'p2pMessages.noConversationsHint': 'Start a trade to begin chatting',
'p2pMessages.you': 'You',
'p2pMessages.sentImage': 'Sent an image',
// OrderFilters
'p2pFilters.filters': 'Filters',
'p2pFilters.filterOrders': 'Filter Orders',
+13
View File
@@ -1577,6 +1577,19 @@ export default {
'p2pChat.newMessage': 'پیام جدید',
'p2pChat.newImage': 'تصویر جدید',
// P2P Navigation
'p2pNav.orders': 'سفارشات',
'p2pNav.ads': 'آگهی‌ها',
'p2pNav.messages': 'پیام‌ها',
// P2P Messages Inbox
'p2pMessages.title': 'پیام‌ها',
'p2pMessages.subtitle': 'گفتگوهای معاملاتی شما',
'p2pMessages.noConversations': 'هنوز گفتگویی وجود ندارد',
'p2pMessages.noConversationsHint': 'برای شروع گفتگو یک معامله آغاز کنید',
'p2pMessages.you': 'شما',
'p2pMessages.sentImage': 'تصویری ارسال شد',
// OrderFilters
'p2pFilters.filters': 'فیلترها',
'p2pFilters.filterOrders': 'فیلتر سفارشات',
+13
View File
@@ -1565,6 +1565,19 @@ export default {
'p2pChat.newMessage': 'Peyama Nû',
'p2pChat.newImage': 'Wêneya Nû',
// P2P Navigation
'p2pNav.orders': 'Ferman',
'p2pNav.ads': 'Reklam',
'p2pNav.messages': 'Peyam',
// P2P Messages Inbox
'p2pMessages.title': 'Peyam',
'p2pMessages.subtitle': 'Sohbetên bazirganiya we',
'p2pMessages.noConversations': 'Hêj sohbet tune',
'p2pMessages.noConversationsHint': 'Ji bo destpêkirina sohbetê bazirganiyekê bikin',
'p2pMessages.you': 'Tu',
'p2pMessages.sentImage': 'Wêneyek şand',
// OrderFilters
'p2pFilters.filters': 'Fîltre',
'p2pFilters.filterOrders': 'Siparîşan Fîltre Bike',
+13
View File
@@ -1559,6 +1559,19 @@ export default {
'p2pChat.newMessage': 'Yeni Mesaj',
'p2pChat.newImage': 'Yeni Resim',
// P2P Navigation
'p2pNav.orders': 'Siparişler',
'p2pNav.ads': 'İlanlar',
'p2pNav.messages': 'Mesajlar',
// P2P Messages Inbox
'p2pMessages.title': 'Mesajlar',
'p2pMessages.subtitle': 'Trade sohbetleriniz',
'p2pMessages.noConversations': 'Henüz sohbet yok',
'p2pMessages.noConversationsHint': 'Sohbet başlatmak için bir trade başlatın',
'p2pMessages.you': 'Sen',
'p2pMessages.sentImage': 'Bir resim gönderdi',
// OrderFilters
'p2pFilters.filters': 'Filtreler',
'p2pFilters.filterOrders': 'Siparişleri Filtrele',