diff --git a/client/lib/widgets/nav_sidebar.dart b/client/lib/widgets/nav_sidebar.dart index 4663800..1ba6429 100644 --- a/client/lib/widgets/nav_sidebar.dart +++ b/client/lib/widgets/nav_sidebar.dart @@ -36,32 +36,23 @@ class NavSidebar extends ConsumerWidget { ), padding: EdgeInsets.fromLTRB(dense ? 12 : 14, dense ? 14 : 18, dense ? 12 : 14, dense ? 14 : 16), child: Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - // 品牌区(可点 → 我的/账户;选中态高亮)。「我的」已从导航列表移到此处。 - Material( - color: current == NavView.account ? c.accentSubtle : Colors.transparent, - borderRadius: BorderRadius.circular(PangolinRadius.md), - clipBehavior: Clip.antiAlias, - child: InkWell( - onTap: () => ref.read(navViewProvider.notifier).state = NavView.account, - child: Padding( - padding: EdgeInsets.fromLTRB(6, dense ? 7 : 9, 6, dense ? 7 : 9), - child: Row(children: [ - PangolinMark(size: dense ? 28 : 30), - SizedBox(width: dense ? 9 : 10), - Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - Text(t.brand, - style: PangolinText.h3.copyWith( - color: c.fg1, fontWeight: FontWeight.w700, fontSize: dense ? 16 : 17, height: 1)), - const SizedBox(height: 3), - Text('PANGOLIN', - style: PangolinText.caption.copyWith( - color: c.accent, fontWeight: FontWeight.w600, fontSize: 9, letterSpacing: 1.6)), - ]), - ]), - ), - ), + // 品牌区(静态) + Padding( + padding: EdgeInsets.fromLTRB(6, 2, 6, dense ? 16 : 20), + child: Row(children: [ + PangolinMark(size: dense ? 28 : 30), + SizedBox(width: dense ? 9 : 10), + Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ + Text(t.brand, + style: PangolinText.h3.copyWith( + color: c.fg1, fontWeight: FontWeight.w700, fontSize: dense ? 16 : 17, height: 1)), + const SizedBox(height: 3), + Text('PANGOLIN', + style: PangolinText.caption.copyWith( + color: c.accent, fontWeight: FontWeight.w600, fontSize: 9, letterSpacing: 1.6)), + ]), + ]), ), - SizedBox(height: dense ? 12 : 16), // Nav 列表 for (final item in items) Padding( diff --git a/client/lib/widgets/plan_badge_card.dart b/client/lib/widgets/plan_badge_card.dart index c0501ac..2d8f5ce 100644 --- a/client/lib/widgets/plan_badge_card.dart +++ b/client/lib/widgets/plan_badge_card.dart @@ -8,6 +8,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../pangolin_theme.dart'; import '../state/account_providers.dart'; import '../state/app_providers.dart'; +import '../state/navigation_provider.dart'; import 'pangolin_icons.dart'; class PlanBadgeCard extends ConsumerWidget { @@ -19,19 +20,27 @@ class PlanBadgeCard extends ConsumerWidget { final t = ref.watch(appTextProvider); final isFree = ref.watch(isFreePlanProvider); final exp = ref.watch(meProvider).valueOrNull?.expiresAt; + // 「我的」入口:点会员卡进账户页;选中态高亮。 + final active = ref.watch(navViewProvider) == NavView.account; String two(int v) => v.toString().padLeft(2, '0'); final expLine = exp == null ? t.expires : '${t.expires} ${exp.toLocal().year}-${two(exp.toLocal().month)}-${two(exp.toLocal().day)}'; - return Container( - padding: const EdgeInsets.symmetric(horizontal: 11, vertical: 9), - decoration: BoxDecoration( - color: c.surface, - border: Border.all(color: c.border), - borderRadius: BorderRadius.circular(PangolinRadius.md), - ), - child: Row(children: [ + return Material( + color: Colors.transparent, + borderRadius: BorderRadius.circular(PangolinRadius.md), + clipBehavior: Clip.antiAlias, + child: InkWell( + onTap: () => ref.read(navViewProvider.notifier).state = NavView.account, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 11, vertical: 9), + decoration: BoxDecoration( + color: active ? c.accentSubtle : c.surface, + border: Border.all(color: active ? c.accent : c.border), + borderRadius: BorderRadius.circular(PangolinRadius.md), + ), + child: Row(children: [ Container( width: 30, height: 30, @@ -64,7 +73,10 @@ class PlanBadgeCard extends ConsumerWidget { ], ), ), + Icon(PangolinIcons.chevronRight, size: 15, color: c.fg3), ]), + ), + ), ); } } diff --git a/client/test/golden/goldens/desktop_account.png b/client/test/golden/goldens/desktop_account.png index e80475e..7d839bb 100644 Binary files a/client/test/golden/goldens/desktop_account.png and b/client/test/golden/goldens/desktop_account.png differ diff --git a/client/test/golden/goldens/desktop_contact.png b/client/test/golden/goldens/desktop_contact.png index e709ec7..66a722f 100644 Binary files a/client/test/golden/goldens/desktop_contact.png and b/client/test/golden/goldens/desktop_contact.png differ diff --git a/client/test/golden/goldens/desktop_devices.png b/client/test/golden/goldens/desktop_devices.png index f54020c..1cc54e3 100644 Binary files a/client/test/golden/goldens/desktop_devices.png and b/client/test/golden/goldens/desktop_devices.png differ diff --git a/client/test/golden/goldens/desktop_plans.png b/client/test/golden/goldens/desktop_plans.png index 971c1f5..017e64d 100644 Binary files a/client/test/golden/goldens/desktop_plans.png and b/client/test/golden/goldens/desktop_plans.png differ diff --git a/client/test/golden/goldens/desktop_redeem.png b/client/test/golden/goldens/desktop_redeem.png index f6e58e1..7f1bd7f 100644 Binary files a/client/test/golden/goldens/desktop_redeem.png and b/client/test/golden/goldens/desktop_redeem.png differ diff --git a/client/test/golden/goldens/desktop_servers.png b/client/test/golden/goldens/desktop_servers.png index 0ee629c..13f7a82 100644 Binary files a/client/test/golden/goldens/desktop_servers.png and b/client/test/golden/goldens/desktop_servers.png differ diff --git a/client/test/golden/goldens/desktop_settings.png b/client/test/golden/goldens/desktop_settings.png index 384405d..da8883b 100644 Binary files a/client/test/golden/goldens/desktop_settings.png and b/client/test/golden/goldens/desktop_settings.png differ diff --git a/client/test/golden/goldens/desktop_stats.png b/client/test/golden/goldens/desktop_stats.png index d6f5179..b52e3f7 100644 Binary files a/client/test/golden/goldens/desktop_stats.png and b/client/test/golden/goldens/desktop_stats.png differ diff --git a/client/test/golden/goldens/tablet_account_dark_zh.png b/client/test/golden/goldens/tablet_account_dark_zh.png index 888c705..1ade2a1 100644 Binary files a/client/test/golden/goldens/tablet_account_dark_zh.png and b/client/test/golden/goldens/tablet_account_dark_zh.png differ diff --git a/client/test/golden/goldens/tablet_account_light_en.png b/client/test/golden/goldens/tablet_account_light_en.png index 2b1f24c..c504110 100644 Binary files a/client/test/golden/goldens/tablet_account_light_en.png and b/client/test/golden/goldens/tablet_account_light_en.png differ diff --git a/client/test/golden/goldens/tablet_account_light_zh.png b/client/test/golden/goldens/tablet_account_light_zh.png index 57727dc..04ca721 100644 Binary files a/client/test/golden/goldens/tablet_account_light_zh.png and b/client/test/golden/goldens/tablet_account_light_zh.png differ diff --git a/client/test/golden/goldens/tablet_connect_dark_zh.png b/client/test/golden/goldens/tablet_connect_dark_zh.png index c3f6cea..f0b9c56 100644 Binary files a/client/test/golden/goldens/tablet_connect_dark_zh.png and b/client/test/golden/goldens/tablet_connect_dark_zh.png differ diff --git a/client/test/golden/goldens/tablet_connect_light_en.png b/client/test/golden/goldens/tablet_connect_light_en.png index 9ef497c..d1de84a 100644 Binary files a/client/test/golden/goldens/tablet_connect_light_en.png and b/client/test/golden/goldens/tablet_connect_light_en.png differ diff --git a/client/test/golden/goldens/tablet_connect_light_zh.png b/client/test/golden/goldens/tablet_connect_light_zh.png index 83ae475..e7c2abe 100644 Binary files a/client/test/golden/goldens/tablet_connect_light_zh.png and b/client/test/golden/goldens/tablet_connect_light_zh.png differ diff --git a/client/test/golden/goldens/tablet_servers_dark_zh.png b/client/test/golden/goldens/tablet_servers_dark_zh.png index 1dd6584..118976c 100644 Binary files a/client/test/golden/goldens/tablet_servers_dark_zh.png and b/client/test/golden/goldens/tablet_servers_dark_zh.png differ diff --git a/client/test/golden/goldens/tablet_servers_light_en.png b/client/test/golden/goldens/tablet_servers_light_en.png index 538cea4..14ba798 100644 Binary files a/client/test/golden/goldens/tablet_servers_light_en.png and b/client/test/golden/goldens/tablet_servers_light_en.png differ diff --git a/client/test/golden/goldens/tablet_servers_light_zh.png b/client/test/golden/goldens/tablet_servers_light_zh.png index cc30a56..578642c 100644 Binary files a/client/test/golden/goldens/tablet_servers_light_zh.png and b/client/test/golden/goldens/tablet_servers_light_zh.png differ diff --git a/client/test/golden/goldens/tablet_stats_dark_zh.png b/client/test/golden/goldens/tablet_stats_dark_zh.png index 5aa61b0..e0f4c85 100644 Binary files a/client/test/golden/goldens/tablet_stats_dark_zh.png and b/client/test/golden/goldens/tablet_stats_dark_zh.png differ diff --git a/client/test/golden/goldens/tablet_stats_light_en.png b/client/test/golden/goldens/tablet_stats_light_en.png index 554b707..2ef93db 100644 Binary files a/client/test/golden/goldens/tablet_stats_light_en.png and b/client/test/golden/goldens/tablet_stats_light_en.png differ diff --git a/client/test/golden/goldens/tablet_stats_light_zh.png b/client/test/golden/goldens/tablet_stats_light_zh.png index 83194c3..b0a4822 100644 Binary files a/client/test/golden/goldens/tablet_stats_light_zh.png and b/client/test/golden/goldens/tablet_stats_light_zh.png differ