import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/presentation/routes/routes.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; class WidelyUsedWidget extends StatelessWidget { const WidelyUsedWidget({super.key}); @override Widget build(BuildContext context) { final WidelyUsedLogic controller = Get.put(WidelyUsedLogic()); return Column( children: [ Padding( padding: EdgeInsetsGeometry.all(6), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('پر کاربرد ها', textAlign: TextAlign.right, style: AppFonts.yekan16), /* ObxValue((data) { return GestureDetector( onTap: () { controller.toggleType(); }, child: controller.isOnEdit() ? Assets.vec.checkSvg.svg( width: 12.w, height: 12.h, colorFilter: ColorFilter.mode(AppColor.greenNormal, BlendMode.srcIn), ) : Assets.vec.editSvg.svg( width: 16.w, height: 16.h, colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), ), ); }, controller.type)*/ ], ), ), Padding( padding: const EdgeInsets.symmetric(horizontal: 2.0, vertical: 2), child: Wrap( spacing: 15, runSpacing: 8, children: [ widelyUsed( title: 'خرید خارج استان', iconPath: Assets.vec.truckFastSvg.path, isOnEdit: false, cardColor: AppColor.greenLightActive, labelColor: AppColor.greenNormal, textColor: AppColor.greenDarkHover, onTap: () async { controller.rootLogic.currentPage.value = 0; controller.rootLogic.currentPage.refresh(); await Future.delayed(Duration(milliseconds: 100)); Get.toNamed(ChickenRoutes.buysOutOfProvince, id: 0); }, ), widelyUsed( title: 'خرید داخل استان', iconPath: Assets.vec.cubeSvg.path, cardColor: AppColor.greenLightActive, labelColor: AppColor.greenNormal, textColor: AppColor.greenDarkHover, onTap: () async { controller.rootLogic.currentPage.value = 0; controller.rootLogic.currentPage.refresh(); await Future.delayed(Duration(milliseconds: 100)); Get.toNamed(ChickenRoutes.buysInProvince, id: 0); }, isOnEdit: false, ), widelyUsed( title: 'فروش خارج استان', iconPath: Assets.vec.truckFastSvg.path, isOnEdit: false, onTap: () async { controller.rootLogic.currentPage.value = 1; controller.rootLogic.currentPage.refresh(); await Future.delayed(Duration(milliseconds: 100)); Get.toNamed(ChickenRoutes.salesOutOfProvince, id: 1); }, ), widelyUsed( title: 'فروش داخل استان', iconPath: Assets.vec.cubeSvg.path, isOnEdit: false, onTap: () async { controller.rootLogic.currentPage.value = 1; controller.rootLogic.currentPage.refresh(); await Future.delayed(Duration(milliseconds: 100)); Get.toNamed(ChickenRoutes.salesInProvince, id: 1); }, ), ], ), ), ], ); } Widget widelyUsed({ required String title, required String iconPath, required VoidCallback onTap, required bool isOnEdit, Color? cardColor, Color? labelColor, Color? textColor, }) { return GestureDetector( onTap: !isOnEdit ? onTap : null, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start, spacing: 4, children: [ Stack( clipBehavior: Clip.none, children: [ Container( width: 48, height: 48, padding: EdgeInsets.all(4), decoration: ShapeDecoration( color: cardColor ?? Color(0xFFBECDFF), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: Container( width: 40, height: 40, decoration: ShapeDecoration( color: labelColor ?? AppColor.blueNormal, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: SvgGenImage.vec(iconPath).svg( width: 24, height: 24, colorFilter: ColorFilter.mode(Colors.white, BlendMode.srcIn), fit: BoxFit.cover, ), ), ), Visibility( visible: isOnEdit, child: Container( width: 48, height: 48, padding: EdgeInsets.all(4), decoration: ShapeDecoration( color: Colors.white60, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), ), ), Visibility( visible: isOnEdit, child: Positioned( top: -15, left: -12, child: SizedBox( width: 32.w, height: 32.h, child: GestureDetector( onTap: () {}, behavior: HitTestBehavior.translucent, child: Center( child: Container( width: 16, height: 16, decoration: BoxDecoration(shape: BoxShape.circle, color: Colors.white), alignment: Alignment.center, child: Icon(CupertinoIcons.minus, color: AppColor.error, size: 15), ), ), ), ), ), ), ], ), Text(title, style: AppFonts.yekan10.copyWith(color: textColor ?? AppColor.blueNormal)), ], ), ); } Widget addWidelyUsed({required VoidCallback onTap}) { return Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start, spacing: 4, children: [ Container( width: 48, height: 48, padding: EdgeInsets.all(4), decoration: ShapeDecoration( color: const Color(0xFFD9F7F0), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: Assets.vec.messageAddSvg.svg( width: 40, height: 40, colorFilter: ColorFilter.mode(AppColor.greenNormal, BlendMode.srcIn), fit: BoxFit.cover, ), ), Text('افزودن', style: AppFonts.yekan10.copyWith(color: AppColor.greenDarkHover)), ], ); } }