import 'package:flutter/material.dart'; import 'package:niogu_app/core/constants/app_font_size.dart'; import 'package:sizer/sizer.dart'; class MenuItemCard extends StatelessWidget { final String title; final IconData icon; final Color color; final String? firstBadge; final String? secondBadge; final VoidCallback? onTap; const MenuItemCard({ super.key, required this.title, required this.icon, required this.color, this.firstBadge, this.secondBadge, this.onTap, }); @override Widget build(BuildContext context) { final bool isTablet = 100.w >= 600; return Container( padding: EdgeInsets.all(3.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(4.w), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.15), blurRadius: 10, offset: const Offset(0, 4), ), ], ), child: InkWell( onTap: onTap, child: Row( children: [ Container( padding: EdgeInsets.all(2.5.w), decoration: BoxDecoration( color: color.withOpacity(0.1), borderRadius: BorderRadius.circular(2.75.w), ), child: Icon(icon, color: color, size: 6.w), ), SizedBox(width: 3.w), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ if (firstBadge != null) Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(bottom: 0.5.h), padding: EdgeInsets.symmetric( horizontal: 1.5.w, vertical: 0.2.h, ), decoration: BoxDecoration( color: color, borderRadius: BorderRadius.circular(1.w), ), child: Text( firstBadge!, style: TextStyle( color: Colors.white, fontSize: (AppFontSize.small - 2).sp, fontWeight: FontWeight.w500, ), ), ), if (secondBadge != null) CircleAvatar( radius: 2.5.w, backgroundColor: Colors.red, child: Text( secondBadge!, style: TextStyle( color: Colors.white, fontSize: ((isTablet ? AppFontSize.medium : AppFontSize.small) - 1.25) .sp, fontWeight: FontWeight.bold, ), ), ), ], ), Text( title.replaceAll('\n', ' '), style: TextStyle( fontSize: AppFontSize.small.sp, fontWeight: FontWeight.w500, color: Colors.black, ), ), ], ), ), ], ), ), ); } }