import 'package:flutter/material.dart'; import '../../../../common/extension/extension.dart'; import '../../../../common/theme/theme.dart'; import '../../../../domain/user/user.dart'; import '../../../components/assets/assets.gen.dart'; import '../../../components/spacer/spacer.dart'; class HeaderTopBar extends StatelessWidget { final User user; const HeaderTopBar({super.key, required this.user}); @override Widget build(BuildContext context) { return Row( children: [ // Logo + Greeting Expanded( child: Row( children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Assets.images.logo.image(width: 64), Text( '${_greeting(context)}, ${user.name}', style: AppStyle.md.copyWith( color: AppColor.white.withOpacity(0.9), fontWeight: FontWeight.w700, ), maxLines: 1, overflow: TextOverflow.ellipsis, ), ], ), ], ), ), // Notification GestureDetector( onTap: () {}, child: Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: AppColor.white.withOpacity(0.2), borderRadius: BorderRadius.circular(12), ), child: const Icon( Icons.notifications_none_rounded, color: AppColor.white, size: 20, ), ), ), const SpaceWidth(8), // Avatar Container( width: 36, height: 36, decoration: BoxDecoration( color: AppColor.white, borderRadius: BorderRadius.circular(12), ), alignment: Alignment.center, child: Text( _getInitials(user.name), style: AppStyle.sm.copyWith( color: AppColor.primary, fontWeight: FontWeight.w700, ), ), ), ], ); } String _greeting(BuildContext context) { final hour = DateTime.now().hour; if (hour >= 4 && hour < 10) return context.lang.good_morning; if (hour >= 10 && hour < 15) return context.lang.good_afternoon; if (hour >= 15 && hour < 18) return context.lang.good_evening; return context.lang.good_night; } String _getInitials(String name) { final parts = name.trim().split(' '); if (parts.length >= 2) { return '${parts[0][0]}${parts[1][0]}'.toUpperCase(); } return parts[0].isNotEmpty ? parts[0][0].toUpperCase() : ''; } }