import 'package:flutter/material.dart'; import 'package:hmg_patient_app_new/core/enums.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; class CustomChipWidget extends StatelessWidget { final ChipTypeEnum chipType; final String chipText; final String? iconAsset; final VoidCallback? onTap; final bool isSelected; final double borderRadius; final EdgeInsetsGeometry padding; const CustomChipWidget({ super.key, required this.chipType, required this.chipText, this.iconAsset, this.onTap, this.isSelected = false, this.borderRadius = 12, this.padding = const EdgeInsets.all(8), }); @override Widget build(BuildContext context) { final hasIcon = iconAsset != null; final hasOnTap = onTap != null || hasIcon; return Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(borderRadius), color: isSelected ? chipType.color : chipType.backgroundColor, border: Border.all( color: chipType.color, width: isSelected ? 0 : 1, ), ), child: InkWell( onTap: hasOnTap ? onTap : null, borderRadius: BorderRadius.circular(borderRadius), child: Container( padding: padding, decoration: BoxDecoration( borderRadius: BorderRadius.circular(borderRadius), ), child: Row( mainAxisSize: MainAxisSize.min, children: [ if (iconAsset != null) ...[ Utils.buildSvgWithAssets(icon: iconAsset!), const SizedBox(width: 6), ], Text( chipText.toUpperCase(), style: context.dynamicTextStyle( fontWeight: FontWeight.w500, fontSize: 14, color: isSelected ? Colors.white : chipType.color, letterSpacing: 0.1, isLanguageSwitcher: true, ), ), ], ), ), ), ); } }