From 06e79ab2bc9de87d7576f5c418b48ca6f374ea0c Mon Sep 17 00:00:00 2001 From: AIGameCreator App Date: Wed, 8 Jul 2026 20:15:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A6=96=E9=A1=B5=E8=B4=A6?= =?UTF-8?q?=E6=88=B7=E5=B8=AE=E5=8A=A9=E8=8F=9C=E5=8D=95=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一我的和帮助菜单为点击触发 菜单项接入占位通知弹窗并提升弹层层级 调整泥点与升级入口为分段胶囊样式 补充首页菜单交互边界测试 --- apps/ai-game-creator-shell/src/App.tsx | 134 +++++++++++++----- apps/ai-game-creator-shell/src/styles.css | 62 ++++---- .../tests/appSurface.test.ts | 30 +++- 3 files changed, 158 insertions(+), 68 deletions(-) diff --git a/apps/ai-game-creator-shell/src/App.tsx b/apps/ai-game-creator-shell/src/App.tsx index a26db09ca..57695ad3f 100644 --- a/apps/ai-game-creator-shell/src/App.tsx +++ b/apps/ai-game-creator-shell/src/App.tsx @@ -16,7 +16,6 @@ import { BookOpen, CircleHelp, Contact, - CreditCard, FileText, FolderKanban, Gamepad2, @@ -29,8 +28,8 @@ import { Sparkles, Upload, User, - Wallet, X, + Zap, } from 'lucide-react'; import type { @@ -2168,6 +2167,11 @@ export function WorkspaceLauncher({ const [walletLedgerStatus, setWalletLedgerStatus] = useState('尚未读取明细'); const [accountMenuOpen, setAccountMenuOpen] = useState(false); + const [helpMenuOpen, setHelpMenuOpen] = useState(false); + const [launcherNotice, setLauncherNotice] = useState<{ + title: string; + message: string; + } | null>(null); const [showcaseResources, setShowcaseResources] = useState< EditorShowcaseResource[] >([]); @@ -2702,6 +2706,15 @@ export function WorkspaceLauncher({ } } + function showLauncherNotice(title: string) { + setAccountMenuOpen(false); + setHelpMenuOpen(false); + setLauncherNotice({ + title, + message: `${title}正在接入中,当前版本会先保留入口。`, + }); + } + function handleRecentWorkspaceRefresh() { if (recentWorkspaces.length === 0 || recentWorkspaceRefreshing) { return; @@ -2985,7 +2998,12 @@ export function WorkspaceLauncher({ @@ -3031,39 +3049,47 @@ export function WorkspaceLauncher({ aria-label="帮助" title="帮助" className={ - ['guide', 'contact', 'news'].includes(launcherView) + helpMenuOpen || ['guide', 'contact', 'news'].includes(launcherView) ? 'launcher-nav-active' : '' } + aria-expanded={helpMenuOpen} + onClick={() => { + setAccountMenuOpen(false); + setWalletPanelOpen(false); + setHelpMenuOpen((open) => !open); + }} >