// Author: fruit.com.cn import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../../core/data/services/auth_controller.dart'; import '../../../core/theme/app_colors.dart'; import '../../../l10n/app_localizations.dart'; /// 「我的」页顶部身份区,只保留头像、昵称和账号提示。 class MineHeader extends StatelessWidget { const MineHeader({super.key}); @override Widget build(BuildContext context) { final l10n = AppLocalizations.of(context)!; final auth = context.watch(); final user = auth.user; final signedIn = auth.isSignedIn; final name = signedIn && (user?.nickname.isNotEmpty ?? false) ? user!.nickname : l10n.localViewer; final subtitle = signedIn && (user?.uid.isNotEmpty ?? false) ? 'ID: ${user!.uid}' : l10n.logInHint; return Padding( key: const Key('mine-user-row'), padding: const EdgeInsets.fromLTRB(14, 14, 14, 6), child: Row( children: [ _avatar(), const SizedBox(width: 10), Expanded(child: _labels(name, subtitle)), ], ), ); } Widget _avatar() { return Container( key: const Key('mine-avatar'), width: 48, height: 48, decoration: const BoxDecoration( shape: BoxShape.circle, gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [Color(0xFF6A5CFF), AppColors.blue], ), ), child: const Icon( Icons.person_rounded, color: AppColors.onSurface, size: 22, ), ); } Widget _labels(String name, String subtitle) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( name, maxLines: 1, overflow: TextOverflow.ellipsis, style: const TextStyle( color: AppColors.onSurface, fontSize: 15, fontWeight: FontWeight.w800, ), ), const SizedBox(height: 2), Text( subtitle, maxLines: 1, overflow: TextOverflow.ellipsis, style: const TextStyle(color: Color(0xFFBBBBBB), fontSize: 10), ), ], ); } }