import 'package:flutter/material.dart'; import 'package:trainhub_flutter/core/constants/ui_constants.dart'; import 'package:trainhub_flutter/core/theme/app_colors.dart'; class NewChatButton extends StatefulWidget { const NewChatButton({super.key, required this.onPressed}); final VoidCallback onPressed; @override State createState() => _NewChatButtonState(); } class _NewChatButtonState extends State { bool _isHovered = false; @override Widget build(BuildContext context) { return MouseRegion( onEnter: (_) => setState(() => _isHovered = true), onExit: (_) => setState(() => _isHovered = false), child: AnimatedContainer( duration: const Duration(milliseconds: 150), decoration: BoxDecoration( color: _isHovered ? AppColors.zinc700 : AppColors.surfaceContainerHigh, borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius), border: Border.all(color: AppColors.border, width: 1), ), child: Material( color: Colors.transparent, child: InkWell( borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius), onTap: widget.onPressed, child: const Padding( padding: EdgeInsets.symmetric( horizontal: UIConstants.spacing12, vertical: UIConstants.spacing8, ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.add_rounded, size: 16, color: AppColors.textSecondary, ), SizedBox(width: UIConstants.spacing8), Text( 'New Chat', style: TextStyle( color: AppColors.textSecondary, fontSize: 13, fontWeight: FontWeight.w500, ), ), ], ), ), ), ), ), ); } }