fix : onTap marker

This commit is contained in:
2025-04-15 13:33:26 +03:30
parent 1a31d4cdbf
commit a754ac6873
9 changed files with 123 additions and 52 deletions

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -16,7 +16,7 @@ class Assets {
static const String iconsMessageAdd = 'assets/icons/message_add.svg'; static const String iconsMessageAdd = 'assets/icons/message_add.svg';
static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg';
static const String iconsScan = 'assets/icons/scan.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 iconsSetting = 'assets/icons/setting.svg';
static const String iconsTrash = 'assets/icons/trash.svg'; static const String iconsTrash = 'assets/icons/trash.svg';
static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; 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 vecMessageAddSvg = 'assets/vec/message_add.svg.vec';
static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec';
static const String vecScanSvg = 'assets/vec/scan.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 vecSettingSvg = 'assets/vec/setting.svg.vec';
static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec';

View File

@@ -4,6 +4,7 @@ import 'package:latlong2/latlong.dart';
import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_core/data/utils.dart'; import 'package:rasadyar_core/data/utils.dart';
import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart';
import 'package:supervision/presentation/routes/app_routes.dart';
import 'logic.dart'; import 'logic.dart';
@@ -83,15 +84,13 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
}, },
), ),
), ),
Positioned( ObxValue((data) {
bottom: 0,
left: 0,
right: 0,
child: ObxValue((data) {
return DraggableBottomSheet( return DraggableBottomSheet(
controller: data.value, controller: data.value,
backgroundColor: controller.bottomSheetStep.value == BottomSheetStep.filter ? Colors.white : AppColor.lightGreyLight , backgroundColor:
controller.bottomSheetStep.value == BottomSheetStep.filter
? Colors.white
: AppColor.lightGreyLight,
child: ObxValue((data) { child: ObxValue((data) {
if (data.value == BottomSheetStep.filter) { if (data.value == BottomSheetStep.filter) {
return filterWidget(); return filterWidget();
@@ -105,7 +104,6 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
}, controller.bottomSheetStep), }, controller.bottomSheetStep),
); );
}, controller.sheetController), }, controller.sheetController),
),
], ],
); );
} }
@@ -113,14 +111,20 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
Marker markerWidget(LatLng marker) { Marker markerWidget(LatLng marker) {
return Marker( return Marker(
point: marker, point: marker,
child: IconButton(
onPressed: () { child: GestureDetector(
onTap: () {
controller.bottomSheetStep.value = BottomSheetStep.markerSelected; controller.bottomSheetStep.value = BottomSheetStep.markerSelected;
if (!controller.sheetController.value.isVisible.value) { if (!controller.sheetController.value.isVisible.value) {
controller.sheetController.value.show(); 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<SupervisionFilterLogic> {
motion: StretchMotion(), motion: StretchMotion(),
children: [ children: [
CustomSlidableAction( CustomSlidableAction(
onPressed: (context) {}, onPressed: (context) {
Get.toNamed(SupervisionRoutes.supervisionLocationDetails);
},
backgroundColor: AppColor.blueNormal, backgroundColor: AppColor.blueNormal,
foregroundColor: Colors.white, foregroundColor: Colors.white,
padding: EdgeInsets.all(16), padding: EdgeInsets.all(16),
@@ -405,7 +411,7 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
return Container( return Container(
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
margin: EdgeInsets.all(35), margin: EdgeInsets.all(35),
padding: EdgeInsets.symmetric(horizontal: 20,vertical: 10), padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
decoration: ShapeDecoration( decoration: ShapeDecoration(
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
@@ -414,7 +420,8 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
spacing: 15, spacing: 15,
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start,
spacing: 12,
children: [ children: [
Text( Text(
'داود خرم پور', 'داود خرم پور',
@@ -423,6 +430,32 @@ class SupervisionFilterPage extends GetView<SupervisionFilterLogic> {
color: AppColor.darkGreyDarkHover, 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( Container(

View File

@@ -1,5 +1,7 @@
import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/core.dart';
import 'package:supervision/presentation/filter/logic.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/logic.dart';
import 'package:supervision/presentation/root/view.dart'; import 'package:supervision/presentation/root/view.dart';
import 'package:supervision/presentation/routes/app_routes.dart'; import 'package:supervision/presentation/routes/app_routes.dart';
@@ -16,5 +18,19 @@ sealed class SupervisionPages {
BindingsBuilder.put(() => SupervisionFilterLogic()), 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())],
),
]; ];
} }

View File

@@ -4,4 +4,5 @@ sealed class SupervisionRoutes {
static const supervision = '/supervision'; static const supervision = '/supervision';
static const supervisionAction = '/supervision/action'; static const supervisionAction = '/supervision/action';
static const supervisionUserSetting = '/supervision/userSettings'; static const supervisionUserSetting = '/supervision/userSettings';
static const supervisionLocationDetails= '/supervision/locationDetails';
} }

View File

@@ -17,7 +17,7 @@ class Assets {
static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg';
static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScan = 'assets/icons/scan.svg';
static const String iconsScanBarcode = 'assets/icons/scan_barcode.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 iconsSetting = 'assets/icons/setting.svg';
static const String iconsTrash = 'assets/icons/trash.svg'; static const String iconsTrash = 'assets/icons/trash.svg';
static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; 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 vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec';
static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec';
static const String vecScanSvg = 'assets/vec/scan.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 vecSettingSvg = 'assets/vec/setting.svg.vec';
static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec';

View File

@@ -17,7 +17,7 @@ class Assets {
static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg';
static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScan = 'assets/icons/scan.svg';
static const String iconsScanBarcode = 'assets/icons/scan_barcode.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 iconsSetting = 'assets/icons/setting.svg';
static const String iconsTrash = 'assets/icons/trash.svg'; static const String iconsTrash = 'assets/icons/trash.svg';
static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; 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 vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec';
static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec';
static const String vecScanSvg = 'assets/vec/scan.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 vecSettingSvg = 'assets/vec/setting.svg.vec';
static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec';

View File

@@ -19,13 +19,34 @@ 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( SvgPicture svgWidget(
String assets, { String assets, {
double? width, double? width,
double? height, double? height,
BoxFit? fit, BoxFit? fit,
Color? color, Color? color,
}) { }) {
return SvgPicture.asset( return SvgPicture.asset(
assets, assets,
width: width, width: width,
@@ -36,14 +57,13 @@ SvgPicture svgWidget(
); );
} }
Widget vecWidget2( Widget vecWidget2(
String assets, { String assets, {
double? width, double? width,
double? height, double? height,
BoxFit? fit, BoxFit? fit,
Color? color, Color? color,
}) { }) {
final resolvedColor = WidgetStateProperty.resolveWith<Color?>((states) { final resolvedColor = WidgetStateProperty.resolveWith<Color?>((states) {
if (states.contains(WidgetState.pressed)) { if (states.contains(WidgetState.pressed)) {
return Colors.white; return Colors.white;
@@ -58,7 +78,8 @@ Widget vecWidget2(
width: width, width: width,
height: height, height: height,
fit: fit ?? BoxFit.contain, fit: fit ?? BoxFit.contain,
colorFilter: resolvedColor != null colorFilter:
resolvedColor != null
? ColorFilter.mode(resolvedColor, BlendMode.srcIn) ? ColorFilter.mode(resolvedColor, BlendMode.srcIn)
: null, : null,
), ),