map improvements

main_production_asset_tracking
Sikander Saleem 1 month ago
parent 0c7328f099
commit d03c185334

@ -6,6 +6,7 @@ import 'package:flutter_map_geojson2/flutter_map_geojson2.dart';
import 'package:latlong2/latlong.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
@ -202,20 +203,24 @@ class _MapTrackingPageState extends State<MapTrackingPage> {
maxHeight: 120,
child: MultipleItemDropDownMenu<AssetTrackingModel, NullableLoadingProvider>(
context: context,
title: 'Select Assets To View ',
title: 'Assets on The Floor',
hintMsg: 'Search By Label or Serial Number',
initialValue: [],
showShadow: false,
staticData: assetsOnTheFloorList,
showCancel: true,
showAsFullScreenDialog: true,
onSelect: (selectedAssets) {
print("selectedAssets:${selectedAssets?.length}");
setState(() {
markers = [
for (var asset in selectedAssets!)
Marker(
point: LatLng(asset.location!.latitude!, asset.location!.longitude!),
child: const Icon(Icons.location_pin, color: AppColor.red30),
child: Tooltip(
triggerMode: TooltipTriggerMode.tap,
message: "Last seen: ${asset.location?.lastSeen?.toServiceRequestDetailsFormat}",
child: const Icon(Icons.location_pin, color: AppColor.red30),
),
),
];
});

@ -19,8 +19,8 @@ class AssetTrackingModel extends Base {
id = json['id'];
identifier = json['id']?.toString();
label = json['label'];
name = json['label'];
serialNumber = json['serialNumber'];
name = "$label ($serialNumber)";
group = json['group'];
type = json['type'] != null ? new Type.fromJson(json['type']) : null;
department = json['department'] != null ? new Type.fromJson(json['department']) : null;

@ -27,6 +27,7 @@ class MultipleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> ex
final bool showAsFullScreenDialog;
final List<T>? staticData;
final String title;
final String? hintMsg;
final double? height;
final bool showShadow;
final bool showCancel;
@ -39,6 +40,7 @@ class MultipleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> ex
const MultipleItemDropDownMenu({
Key? key,
this.title = "",
this.hintMsg,
required this.context,
this.onSelect,
this.initialValue = const [],
@ -302,6 +304,7 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
selectedItem: _selectedItem,
disableItem: widget.disableValue,
title: widget.title,
hintMsg: widget.hintMsg,
showCancel: widget.showCancel,
onSelect: (selectedT) {
setState(() {

@ -16,12 +16,13 @@ class MultipleSelectionFullScreenDialog<T extends Base> extends StatefulWidget {
final List<T> selectedItem; // Now nullable
final T? disableItem; // Now nullable
final String title;
final String? hintMsg;
final bool showCancel;
final SelectionBuilderString builderString;
final Function(List<T>) onSelect;
const MultipleSelectionFullScreenDialog(
{Key? key, this.items, this.selectedItem = const [], this.disableItem, this.title = "", required this.builderString, this.showCancel = false, required this.onSelect})
{Key? key, this.items, this.selectedItem = const [], this.disableItem, this.title = "", this.hintMsg, required this.builderString, this.showCancel = false, required this.onSelect})
: super(key: key);
@override
@ -108,7 +109,7 @@ class _SelectionBottomSheetState<T extends Base> extends State<MultipleSelection
hintStyle: WidgetStateProperty.all<TextStyle>(
TextStyle(color: AppColor.textColor(context), fontSize: 14.0),
),
hintText: 'Search by name',
hintText: widget.hintMsg ?? 'Search by name',
onChanged: (queryString) {
query = queryString;
setState(() {});

Loading…
Cancel
Save