From e6930e303744e98fecec1c41440b555a4bb85b77 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Mon, 8 Sep 2025 10:17:56 +0330 Subject: [PATCH] chore : change cardIcon widget --- ...with_border.dart => card_icon_widget.dart} | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) rename packages/core/lib/presentation/widget/card/{card_with_icon_with_border.dart => card_icon_widget.dart} (58%) diff --git a/packages/core/lib/presentation/widget/card/card_with_icon_with_border.dart b/packages/core/lib/presentation/widget/card/card_icon_widget.dart similarity index 58% rename from packages/core/lib/presentation/widget/card/card_with_icon_with_border.dart rename to packages/core/lib/presentation/widget/card/card_icon_widget.dart index 6986431..2a84615 100644 --- a/packages/core/lib/presentation/widget/card/card_with_icon_with_border.dart +++ b/packages/core/lib/presentation/widget/card/card_icon_widget.dart @@ -5,9 +5,12 @@ class CardIcon extends StatelessWidget { const CardIcon({ super.key, required this.title, - required this.icon, + this.svgIcon, + + this.vecIcon, this.onTap, this.titleColor = AppColor.blueNormal, + this.spacing = 20, this.titleStyle, this.borderColor = AppColor.blueNormal, this.backgroundColor = Colors.white, @@ -15,10 +18,16 @@ class CardIcon extends StatelessWidget { this.width = 110, this.height = 110, this.borderWidth = 1, - }); + this.iconWidth = 48, + this.iconHeight = 48, + this.iconColor = AppColor.blueNormal, + }) : assert((svgIcon != null) || (vecIcon != null), 'Either svgIcon or vecIcon must be provided'); final String title; - final String icon; + final int spacing; + + final String? svgIcon; + final String? vecIcon; final VoidCallback? onTap; final Color titleColor; final TextStyle? titleStyle; @@ -30,10 +39,16 @@ class CardIcon extends StatelessWidget { final double width; final double height; + //icon + final double iconWidth; + final double iconHeight; + final Color iconColor ; @override Widget build(BuildContext context) { return Container( + width: width.w, + height: height.h, clipBehavior: Clip.hardEdge, padding: EdgeInsets.fromLTRB(17.w, 10.h, 17.w, 8.h), decoration: BoxDecoration( @@ -45,9 +60,21 @@ class CardIcon extends StatelessWidget { onTap: onTap, child: Column( mainAxisAlignment: MainAxisAlignment.center, + spacing: spacing.toDouble(), children: [ - Expanded(child: SvgGenImage(icon).svg(fit: BoxFit.fill)), - SizedBox(height: 10.h), + svgIcon != null + ? SvgGenImage(svgIcon!).svg( + fit: BoxFit.cover, + width: iconWidth.w, + height: iconHeight.h, + colorFilter: ColorFilter.mode(iconColor, BlendMode.srcIn), + ) + : SvgGenImage.vec(vecIcon!).svg( + fit: BoxFit.fill, + width: iconWidth.w, + height: iconHeight.h, + colorFilter: ColorFilter.mode(iconColor, BlendMode.srcIn), + ), Text( title, textAlign: TextAlign.center,