From 377db2284f47691ff897b631c11e82b844eeaf21 Mon Sep 17 00:00:00 2001 From: eric Date: Fri, 4 Sep 2026 07:12:04 -0500 Subject: [PATCH] Move chat and notifications out of Connect into top-right icons. Co-authored-by: Cursor --- frontend/src/app/changelog/page.tsx | 9 ++++++++- frontend/src/app/globals.css | 1 + frontend/src/app/profile/page.tsx | 13 ++----------- frontend/src/components/Footer.tsx | 3 +-- frontend/src/components/Navbar.tsx | 19 +++++++++++++++---- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/changelog/page.tsx b/frontend/src/app/changelog/page.tsx index d40cfa1..bfb912b 100644 --- a/frontend/src/app/changelog/page.tsx +++ b/frontend/src/app/changelog/page.tsx @@ -8,12 +8,19 @@ export const metadata: Metadata = { }; const LOGS = [ + { + date: "2026-09-04", + tag: "导航精简", + items: [ + "私信与通知移出 Connect 菜单/页脚/个人中心快捷入口,统一用右上角 ✉️ / 🔔 图标进入", + ], + }, { date: "2026-09-04", tag: "活动报名 · Connect 数据", items: [ "报名成功 toast:线上/混合直达直播间,线下引导导出日历;报名确认写入通知箱", - "个人中心新增 Connect 数据条(喜欢我的 / 互相喜欢 / 私信 / 已报名),可点进对应页面", + "个人中心新增 Connect 数据条(喜欢我的 / 互相喜欢 / 已报名),可点进对应页面", ], }, { diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index 8110f25..8c55d76 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -2781,6 +2781,7 @@ img { max-width: 100%; display: block; } .profile-connect-stats { margin-bottom: 0; + grid-template-columns: repeat(3, 1fr); } .profile-stat-card { diff --git a/frontend/src/app/profile/page.tsx b/frontend/src/app/profile/page.tsx index 0729cfc..0075636 100644 --- a/frontend/src/app/profile/page.tsx +++ b/frontend/src/app/profile/page.tsx @@ -60,7 +60,7 @@ export default function ProfilePage() { const [stats, setStats] = useState(null); const [favoriteDests, setFavoriteDests] = useState([]); const [rsvps, setRsvps] = useState([]); - const [connect, setConnect] = useState({ likes: 0, matches: 0, chats: 0 }); + const [connect, setConnect] = useState({ likes: 0, matches: 0 }); const [trip, setTrip] = useState([]); const [meta, setMeta] = useState(null); const [loading, setLoading] = useState(true); @@ -113,11 +113,9 @@ export default function ProfilePage() { Promise.all([ api.getMatchLikesReceived(token).catch(() => []), api.getMutualMatches(token).catch(() => ({ items: [] })), - api.getConversations(token).catch(() => []), - ]).then(([likes, matches, chats]) => ({ + ]).then(([likes, matches]) => ({ likes: likes.length, matches: matches.items?.length ?? 0, - chats: chats.length, })), ]).then(([s, f, v, myMeetups, connectStats]) => { setStats(s); @@ -244,11 +242,6 @@ export default function ProfilePage() { {connect.matches} {t.profile.statMatches} - - ✉️ - {connect.chats} - {t.profile.statChats} - 🎉 {rsvps.length} @@ -439,8 +432,6 @@ export default function ProfilePage() { {t.profile.qNext} {t.profile.qMeetups} {t.profile.qDating} - {t.profile.qChat} - {t.profile.qNotif} {vip ? t.profile.qVipMember : t.profile.qVip} {t.profile.qDigital} {t.profile.qAi} diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index 57b0680..cb4aa0c 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -54,7 +54,7 @@ export default function Footer() { {t.footer.meetups} {t.footer.community} {t.footer.dating} - {t.footer.chat} + {t.footer.join}

{t.footer.grow}

@@ -64,7 +64,6 @@ export default function Footer() { {t.submit.tag} {t.nav.feedback} {t.footer.toolkit} - {t.footer.join}

{t.footer.account}

diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index aa55e2b..edd83f9 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -57,8 +57,6 @@ export default function Navbar() { { href: "/meetups", label: t.nav.meetups, section: "meetups" }, { href: "/community", label: t.nav.community, section: "community" }, { href: "/dating", label: t.nav.dating, section: "dating" }, - { href: "/chat", label: t.nav.chat, section: "chat" }, - { href: "/notifications", label: t.nav.notifications, section: "notifications" }, { href: "/join", label: t.nav.join, section: "join" }, ]; @@ -142,7 +140,6 @@ export default function Navbar() { if (l.href.startsWith("/#")) return isHome && active === l.section; if (l.href === "/book") return pathname.startsWith("/book"); if (l.href === "/digital") return pathname.startsWith("/digital"); - if (l.href === "/chat") return pathname.startsWith("/chat"); if (l.href === "/dating") return pathname.startsWith("/dating"); if (l.href === "/meetups") return pathname.startsWith("/meetups"); if (l.href === "/community") return pathname.startsWith("/community"); @@ -228,7 +225,7 @@ export default function Navbar() {
- {/* Right chrome: language / theme / notifications — always top-right */} + {/* Right chrome: language / theme / chat / notifications — always top-right */}
+ {user ? ( + + ✉️ + + ) : ( + + ✉️ + + )} {user ? ( 🔔{unread > 0 && {unread}}