diff --git a/assets/icons/security-time.svg b/assets/icons/security_time.svg similarity index 100% rename from assets/icons/security-time.svg rename to assets/icons/security_time.svg diff --git a/assets/vec/security-time.svg.vec b/assets/vec/security_time.svg.vec similarity index 100% rename from assets/vec/security-time.svg.vec rename to assets/vec/security_time.svg.vec diff --git a/core/lib/presentation/common/assets.dart/assets.dart b/core/lib/presentation/common/assets.dart/assets.dart index 432e743..9d075b7 100644 --- a/core/lib/presentation/common/assets.dart/assets.dart +++ b/core/lib/presentation/common/assets.dart/assets.dart @@ -16,7 +16,7 @@ class Assets { static const String iconsMessageAdd = 'assets/icons/message_add.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsScan = 'assets/icons/scan.svg'; - static const String iconsSecurityTime = 'assets/icons/security-time.svg'; + static const String iconsSecurityTime = 'assets/icons/security_time.svg'; static const String iconsSetting = 'assets/icons/setting.svg'; static const String iconsTrash = 'assets/icons/trash.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; @@ -35,7 +35,7 @@ class Assets { static const String vecMessageAddSvg = 'assets/vec/message_add.svg.vec'; static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; static const String vecScanSvg = 'assets/vec/scan.svg.vec'; - static const String vecSecurityTimeSvg = 'assets/vec/security-time.svg.vec'; + static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; diff --git a/features/supervision/lib/presentation/filter/view.dart b/features/supervision/lib/presentation/filter/view.dart index c349694..53100cb 100644 --- a/features/supervision/lib/presentation/filter/view.dart +++ b/features/supervision/lib/presentation/filter/view.dart @@ -4,6 +4,7 @@ import 'package:latlong2/latlong.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/data/utils.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; +import 'package:supervision/presentation/routes/app_routes.dart'; import 'logic.dart'; @@ -83,29 +84,26 @@ class SupervisionFilterPage extends GetView { }, ), ), - Positioned( - bottom: 0, - left: 0, - right: 0, - child: ObxValue((data) { - - return DraggableBottomSheet( - controller: data.value, - backgroundColor: controller.bottomSheetStep.value == BottomSheetStep.filter ? Colors.white : AppColor.lightGreyLight , - child: ObxValue((data) { - if (data.value == BottomSheetStep.filter) { - return filterWidget(); - } else if (data.value == BottomSheetStep.markerSelected) { - return selectedLocationWidget(); - } else if (data.value == BottomSheetStep.markerDetails) { - return markerDetailsWidget(); - } else { - return Container(height: 300, color: AppColor.blueNormal); - } - }, controller.bottomSheetStep), - ); - }, controller.sheetController), - ), + ObxValue((data) { + return DraggableBottomSheet( + controller: data.value, + backgroundColor: + controller.bottomSheetStep.value == BottomSheetStep.filter + ? Colors.white + : AppColor.lightGreyLight, + child: ObxValue((data) { + if (data.value == BottomSheetStep.filter) { + return filterWidget(); + } else if (data.value == BottomSheetStep.markerSelected) { + return selectedLocationWidget(); + } else if (data.value == BottomSheetStep.markerDetails) { + return markerDetailsWidget(); + } else { + return Container(height: 300, color: AppColor.blueNormal); + } + }, controller.bottomSheetStep), + ); + }, controller.sheetController), ], ); } @@ -113,14 +111,20 @@ class SupervisionFilterPage extends GetView { Marker markerWidget(LatLng marker) { return Marker( point: marker, - child: IconButton( - onPressed: () { + + child: GestureDetector( + onTap: () { controller.bottomSheetStep.value = BottomSheetStep.markerSelected; if (!controller.sheetController.value.isVisible.value) { controller.sheetController.value.show(); } }, - icon: Icon(Icons.location_on, color: Colors.red, size: 30), + behavior: HitTestBehavior.opaque, + child: SizedBox( + width: 36, + height: 36, + child: Icon(Icons.location_on, color: Colors.red, size: 30), + ), ), ); } @@ -134,7 +138,9 @@ class SupervisionFilterPage extends GetView { motion: StretchMotion(), children: [ CustomSlidableAction( - onPressed: (context) {}, + onPressed: (context) { + Get.toNamed(SupervisionRoutes.supervisionLocationDetails); + }, backgroundColor: AppColor.blueNormal, foregroundColor: Colors.white, padding: EdgeInsets.all(16), @@ -405,7 +411,7 @@ class SupervisionFilterPage extends GetView { return Container( clipBehavior: Clip.antiAlias, margin: EdgeInsets.all(35), - padding: EdgeInsets.symmetric(horizontal: 20,vertical: 10), + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), decoration: ShapeDecoration( color: Colors.white, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), @@ -414,7 +420,8 @@ class SupervisionFilterPage extends GetView { spacing: 15, children: [ Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + spacing: 12, children: [ Text( 'داود خرم پور', @@ -423,6 +430,32 @@ class SupervisionFilterPage extends GetView { color: AppColor.darkGreyDarkHover, ), ), + Spacer(), + vecWidgetWithOnTap( + assets: Assets.vecMapSvg, + onTap: () { + eLog('vecWidgetWithOnTap ==> Assets.vecMapSvg'); + Get.toNamed(SupervisionRoutes.supervisionLocationDetails); + }, + width: 24, + height: 24, + color: AppColor.blueNormal, + ), + vecWidgetWithOnTap( + assets: Assets.vecMessageAddSvg, + width: 24, + height: 24, + color: AppColor.greenNormal, + onTap: () {}, + ), + + vecWidgetWithOnTap( + assets: Assets.vecSecurityTimeSvg, + color: AppColor.warning, + height: 24, + width: 24, + onTap: () {}, + ), ], ), Container( diff --git a/features/supervision/lib/presentation/routes/app_pages.dart b/features/supervision/lib/presentation/routes/app_pages.dart index 2b44f68..78a8a11 100644 --- a/features/supervision/lib/presentation/routes/app_pages.dart +++ b/features/supervision/lib/presentation/routes/app_pages.dart @@ -1,5 +1,7 @@ import 'package:rasadyar_core/core.dart'; import 'package:supervision/presentation/filter/logic.dart'; +import 'package:supervision/presentation/location_details/logic.dart'; +import 'package:supervision/presentation/location_details/view.dart'; import 'package:supervision/presentation/root/logic.dart'; import 'package:supervision/presentation/root/view.dart'; import 'package:supervision/presentation/routes/app_routes.dart'; @@ -16,5 +18,19 @@ sealed class SupervisionPages { BindingsBuilder.put(() => SupervisionFilterLogic()), ], ), + GetPage( + name: SupervisionRoutes.supervision, + page: () => RootPage(), + bindings: [ + BindingsBuilder.put(() => RootLogic()), + BindingsBuilder.put(() => SupervisionFilterLogic()), + ], + ), + + GetPage( + name: SupervisionRoutes.supervisionLocationDetails, + page: () => LocationDetailsPage(), + bindings: [BindingsBuilder.put(() => LocationDetailsLogic())], + ), ]; } diff --git a/features/supervision/lib/presentation/routes/app_routes.dart b/features/supervision/lib/presentation/routes/app_routes.dart index 37df78b..f5b027a 100644 --- a/features/supervision/lib/presentation/routes/app_routes.dart +++ b/features/supervision/lib/presentation/routes/app_routes.dart @@ -4,4 +4,5 @@ sealed class SupervisionRoutes { static const supervision = '/supervision'; static const supervisionAction = '/supervision/action'; static const supervisionUserSetting = '/supervision/userSettings'; + static const supervisionLocationDetails= '/supervision/locationDetails'; } diff --git a/lib/presentation/common/assets.dart b/lib/presentation/common/assets.dart index c51cd01..5eeb4c1 100644 --- a/lib/presentation/common/assets.dart +++ b/lib/presentation/common/assets.dart @@ -17,7 +17,7 @@ class Assets { static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScanBarcode = 'assets/icons/scan_barcode.svg'; - static const String iconsSecurityTime = 'assets/icons/security-time.svg'; + static const String iconsSecurityTime = 'assets/icons/security_time.svg'; static const String iconsSetting = 'assets/icons/setting.svg'; static const String iconsTrash = 'assets/icons/trash.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; @@ -37,7 +37,7 @@ class Assets { static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanSvg = 'assets/vec/scan.svg.vec'; - static const String vecSecurityTimeSvg = 'assets/vec/security-time.svg.vec'; + static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; diff --git a/packages/core/lib/presentation/common/assets.dart b/packages/core/lib/presentation/common/assets.dart index c51cd01..5eeb4c1 100644 --- a/packages/core/lib/presentation/common/assets.dart +++ b/packages/core/lib/presentation/common/assets.dart @@ -17,7 +17,7 @@ class Assets { static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScanBarcode = 'assets/icons/scan_barcode.svg'; - static const String iconsSecurityTime = 'assets/icons/security-time.svg'; + static const String iconsSecurityTime = 'assets/icons/security_time.svg'; static const String iconsSetting = 'assets/icons/setting.svg'; static const String iconsTrash = 'assets/icons/trash.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; @@ -37,7 +37,7 @@ class Assets { static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanSvg = 'assets/vec/scan.svg.vec'; - static const String vecSecurityTimeSvg = 'assets/vec/security-time.svg.vec'; + static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; diff --git a/packages/core/lib/presentation/widget/vec_widget.dart b/packages/core/lib/presentation/widget/vec_widget.dart index 3fb78f1..4a1c313 100644 --- a/packages/core/lib/presentation/widget/vec_widget.dart +++ b/packages/core/lib/presentation/widget/vec_widget.dart @@ -19,31 +19,51 @@ SvgPicture vecWidget( ); } +Widget vecWidgetWithOnTap({ + required String assets, + required VoidCallback onTap, + double? width, + double? height, + BoxFit? fit, + Color? color, +}) { + return InkWell( + onTap: onTap, + child: SvgPicture( + AssetBytesLoader(assets), + width: width, + height: height, + fit: fit ?? BoxFit.contain, + colorFilter: + color != null ? ColorFilter.mode(color, BlendMode.srcIn) : null, + ), + ); +} + SvgPicture svgWidget( - String assets, { - double? width, - double? height, - BoxFit? fit, - Color? color, - }) { + String assets, { + double? width, + double? height, + BoxFit? fit, + Color? color, +}) { return SvgPicture.asset( assets, width: width, height: height, fit: fit ?? BoxFit.contain, colorFilter: - color != null ? ColorFilter.mode(color, BlendMode.srcIn) : null, + color != null ? ColorFilter.mode(color, BlendMode.srcIn) : null, ); } - Widget vecWidget2( - String assets, { - double? width, - double? height, - BoxFit? fit, - Color? color, - }) { + String assets, { + double? width, + double? height, + BoxFit? fit, + Color? color, +}) { final resolvedColor = WidgetStateProperty.resolveWith((states) { if (states.contains(WidgetState.pressed)) { return Colors.white; @@ -58,9 +78,10 @@ Widget vecWidget2( width: width, height: height, fit: fit ?? BoxFit.contain, - colorFilter: resolvedColor != null - ? ColorFilter.mode(resolvedColor, BlendMode.srcIn) - : null, + colorFilter: + resolvedColor != null + ? ColorFilter.mode(resolvedColor, BlendMode.srcIn) + : null, ), ); }