diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 6eebe6e..cdac093 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -84,6 +84,9 @@ "dashboard.redeem": "Redeem", "dashboard.redeemSuccess": "Code redeemed successfully!", "dashboard.quickLinks": "Quick Links", + "dashboard.announcements": "Announcements", + "dashboard.announcementsDesc": "Latest updates from the site owner", + "dashboard.notice": "Notice", "dashboard.apiKeys": "API Keys", "dashboard.manageKeys": "Manage your keys", "dashboard.packages": "Packages", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index f5b6135..e527f86 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -84,6 +84,9 @@ "dashboard.redeem": "兑换", "dashboard.redeemSuccess": "兑换码兑换成功!", "dashboard.quickLinks": "快捷入口", + "dashboard.announcements": "公告通知", + "dashboard.announcementsDesc": "站点管理员发布的最新消息", + "dashboard.notice": "通知", "dashboard.apiKeys": "API 密钥", "dashboard.manageKeys": "管理您的密钥", "dashboard.packages": "套餐", diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx index 154d679..affe88c 100644 --- a/src/pages/Dashboard.jsx +++ b/src/pages/Dashboard.jsx @@ -1,6 +1,7 @@ import React, { useState, useEffect, useCallback } from 'react'; import { Link } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; +import { Megaphone } from 'lucide-react'; import { useAuth } from '../context/AuthContext'; import { getUserUsage, @@ -174,6 +175,9 @@ export default function Dashboard() { ); const hasCustomCommissionRate = currentCommissionRate > defaultCommissionRate + 1e-8; + const announcements = Array.isArray(site?.announcements) + ? site.announcements.filter((item) => item?.content) + : (site?.announcement ? [{ content: site.announcement, publish_date: '' }] : []); const handleWithdraw = async () => { const amount = Number.parseFloat(withdrawAmount); @@ -311,6 +315,32 @@ export default function Dashboard() {
{t('dashboard.manageDesc')}
+ {announcements.length > 0 && ( +{t('dashboard.announcementsDesc')}
++ {item.content} +
+{t('dashboard.balance')}