From 289d06ff6894019e9da962cb99bb35fe60ea89be Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 Date: Thu, 6 Mar 2025 12:16:21 +0300 Subject: [PATCH] Asset transfer nurse side ui completed --- lib/main.dart | 4 +- .../app_floating_action_button.dart | 4 +- .../create_request-type_bottomsheet.dart | 4 +- .../create__asset_transfer_request.dart | 322 ++++++++++++++++++ .../request_device_transfer.dart | 211 ------------ lib/views/pages/user/land_page.dart | 2 +- lib/views/widgets/equipment/asset_picker.dart | 18 +- 7 files changed, 342 insertions(+), 223 deletions(-) create mode 100644 lib/views/pages/device_transfer/create__asset_transfer_request.dart delete mode 100644 lib/views/pages/device_transfer/request_device_transfer.dart diff --git a/lib/main.dart b/lib/main.dart index 7c9425f6..59c05001 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -68,7 +68,7 @@ import 'package:test_sa/service_request_latest/service_request_detail_provider.d import 'package:test_sa/service_request_latest/views/nurse/create_new_request_view.dart'; import 'package:test_sa/views/pages/device_transfer/asset_filter_screen.dart'; import 'package:test_sa/views/pages/device_transfer/asset_search_screen.dart'; -import 'package:test_sa/views/pages/device_transfer/request_device_transfer.dart'; +import 'package:test_sa/views/pages/device_transfer/create__asset_transfer_request.dart'; import 'package:test_sa/views/pages/device_transfer/track_device_transfer.dart'; import 'package:test_sa/views/pages/sub_workorder/create_sub_workorder_page.dart'; import 'package:test_sa/views/pages/user/gas_refill/gas_refill_form.dart'; @@ -305,7 +305,7 @@ class MyApp extends StatelessWidget { // PreventiveMaintenanceVisitsPage.id: (_) => PreventiveMaintenanceVisitsPage(), PpmPage.id: (_) => const PpmPage(), TrackGasRefillPage.id: (_) => const TrackGasRefillPage(), - RequestDeviceTransfer.id: (_) => const RequestDeviceTransfer(), + CreateAssetTransferRequest.id: (_) => const CreateAssetTransferRequest(), TrackDeviceTransferPage.id: (_) => const TrackDeviceTransferPage(), // todo remove this class after work diff --git a/lib/new_views/common_widgets/app_floating_action_button.dart b/lib/new_views/common_widgets/app_floating_action_button.dart index 29f9892b..bdf4499f 100644 --- a/lib/new_views/common_widgets/app_floating_action_button.dart +++ b/lib/new_views/common_widgets/app_floating_action_button.dart @@ -9,7 +9,7 @@ import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/models/user.dart'; import 'package:test_sa/new_views/pages/new_gas_refill_request_page.dart'; -import 'package:test_sa/views/pages/device_transfer/request_device_transfer.dart'; +import 'package:test_sa/views/pages/device_transfer/create__asset_transfer_request.dart'; import 'package:test_sa/views/pages/user/requests/create_service_request_page.dart'; import '../app_style/app_color.dart'; @@ -40,7 +40,7 @@ class _AppFloatingActionButtonState extends State { final elements = [ if (user.type == UsersTypes.normal_user) fabItem(context.translation.gasRefillRequest, "gas_refill_request", NewGasRefillRequestPage.routeName), if (user.type == UsersTypes.normal_user) const Divider().defaultStyle(context).paddingOnly(top: 16, bottom: 16), - if (user.type == UsersTypes.normal_user) fabItem(context.translation.transferRequest, "transfer_request", RequestDeviceTransfer.id), + if (user.type == UsersTypes.normal_user) fabItem(context.translation.transferRequest, "transfer_request", CreateAssetTransferRequest.id), if (user.type == UsersTypes.normal_user) const Divider().defaultStyle(context).paddingOnly(top: 16, bottom: 16), if (user.type == UsersTypes.normal_user) fabItem(context.translation.serviceRequest, "service_request", CreateServiceRequestPage.id), ]; diff --git a/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart b/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart index 87206116..21745e18 100644 --- a/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart +++ b/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart @@ -5,7 +5,7 @@ import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/pages/new_gas_refill_request_page.dart'; import 'package:test_sa/service_request_latest/views/nurse/create_new_request_view.dart'; -import 'package:test_sa/views/pages/device_transfer/request_device_transfer.dart'; +import 'package:test_sa/views/pages/device_transfer/create__asset_transfer_request.dart'; class CreateRequestTypeBottomSheet extends StatelessWidget { const CreateRequestTypeBottomSheet({super.key}); @@ -49,7 +49,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget { icon: 'add_icon', label: context.translation.deviceTransfer, onTap: () async { - Navigator.pushReplacementNamed(context, RequestDeviceTransfer.id); + Navigator.pushReplacementNamed(context, CreateAssetTransferRequest.id); }, ), ], diff --git a/lib/views/pages/device_transfer/create__asset_transfer_request.dart b/lib/views/pages/device_transfer/create__asset_transfer_request.dart new file mode 100644 index 00000000..d65537ff --- /dev/null +++ b/lib/views/pages/device_transfer/create__asset_transfer_request.dart @@ -0,0 +1,322 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart'; +import 'package:test_sa/controllers/providers/api/status_drop_down/employee/nurse_provider.dart'; +import 'package:test_sa/controllers/providers/api/user_provider.dart'; +import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; +import 'package:test_sa/extensions/context_extension.dart'; +import 'package:test_sa/extensions/int_extensions.dart'; +import 'package:test_sa/extensions/text_extensions.dart'; +import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/models/device/asset.dart'; +import 'package:test_sa/models/device/asset_transfer.dart'; +import 'package:test_sa/models/employee.dart'; +import 'package:test_sa/models/lookup.dart'; +import 'package:test_sa/models/new_models/department.dart'; +import 'package:test_sa/models/new_models/floor.dart'; +import 'package:test_sa/models/new_models/room_model.dart'; +import 'package:test_sa/new_views/app_style/app_color.dart'; +import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; +import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; +import 'package:test_sa/views/widgets/equipment/asset_picker.dart'; +import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; +import 'package:test_sa/views/widgets/status/employee/nurse_menu.dart'; + +import '../../../models/new_models/building.dart'; +import '../../../models/new_models/site.dart'; +import '../../../new_views/common_widgets/app_filled_button.dart'; +import '../../../new_views/common_widgets/default_app_bar.dart'; +import '../../../new_views/common_widgets/single_item_drop_down_menu.dart'; +import '../../../providers/gas_request_providers/site_provider.dart'; +import '../../../providers/loading_list_notifier.dart'; +import '../../widgets/equipment/pick_asset.dart'; + +class CreateAssetTransferRequest extends StatefulWidget { + static const String id = "/request-device-transfer"; + + const CreateAssetTransferRequest({Key? key}) : super(key: key); + + @override + State createState() => _CreateAssetTransferRequestState(); +} + +class _CreateAssetTransferRequestState extends State { + UserProvider? _userProvider; + SettingProvider? _settingProvider; + late AssetTransferProvider _deviceTransferProvider; + final TextEditingController _requestedQuantityController = TextEditingController(); + final AssetTransfer _transferModel = AssetTransfer(); + final GlobalKey _formKey = GlobalKey(); + final GlobalKey _scaffoldKey = GlobalKey(); + final TextEditingController _receiverNameController = TextEditingController(), _commentsController = TextEditingController(); + final Asset _assetDestination = Asset(); + Asset? _pickedAsset; + Employee? receiverEndUser; + Employee? _selectedNurse; + final List _deviceImages = []; + + @override + void setState(VoidCallback fn) { + if (mounted) super.setState(() {}); + } +//TODO need to clean the extra logic and code when finilize api from backend.. + void _onSubmit() async { + _transferModel.assetId = _pickedAsset?.id; + _transferModel.destSiteId = _assetDestination.site?.id; + _transferModel.destBuildingId = _assetDestination.building?.id; + _transferModel.destFloorId = _assetDestination.floor?.id; + _transferModel.destDepartmentId = _assetDestination.department?.id; + _transferModel.destRoomId = _assetDestination.room?.id; + _transferModel.receiverEndUserId = _selectedNurse?.id; + + if (!_formKey.currentState!.validate() || !(await _transferModel.validate(context))) { + return; + } + _formKey.currentState!.save(); + // List attachement = []; + // for (var item in _deviceImages) { + // attachement.add(WorkOrderAttachments(id: 0, name: "${item.path.split("/").last}|${base64Encode(item.readAsBytesSync())}")); + // } + + await _deviceTransferProvider.createRequest(context: context, assetDestination: _transferModel, asset: _pickedAsset!); + } + + List requestType = [ + Lookup(name: 'Internal', value: 1), + Lookup(name: 'External', value: 2), + ]; + + @override + void initState() { + // TODO: need to check parameter with backend. + // _deviceImages.addAll(_serviceRequest.devicePhotos!.map((e) => File(e)).toList()); + super.initState(); + } + + Lookup selectedRequestType = Lookup(name: 'Internal', value: 1); + + @override + void dispose() { + _requestedQuantityController.dispose(); + _deviceTransferProvider.reset(); + _receiverNameController.dispose(); + _commentsController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + _userProvider = Provider.of(context, listen: false); + _settingProvider = Provider.of(context, listen: false); + _deviceTransferProvider = Provider.of(context, listen: false); + return Scaffold( + key: _scaffoldKey, + appBar: DefaultAppBar(title: context.translation.newTransferRequest), + body: Form( + key: _formKey, + child: SafeArea( + child: Column( + children: [ + SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 16.height, + // PickAsset( + // device: _pickedAsset, + // onPickAsset: (asset) { + // _pickedAsset = asset; + // setState(() {}); + // }, + // ), + AssetPicker( + device: _pickedAsset, + showLoading: false, + borderColor: AppColor.black20, + backgroundColor: AppColor.white936, + onPick: (asset) async { + _pickedAsset = asset; + setState(() {}); + // pendingAssetServiceRequest = null; + // _serviceRequest.device = asset; + // await checkAssetForPendingServiceRequest(asset.id!.toInt()); + // if (pendingAssetServiceRequest != null && pendingAssetServiceRequest!.details!.isNotEmpty) { + // showPendingRequestBottomSheet(); + }), + 21.height, + context.translation.requestType.bodyText(context).custom(color: AppColor.white936), + 10.height, + Wrap( + runSpacing: 8, + spacing: 20, + children: [ + for (var element in requestType) + Row( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: 24, + height: 24, + child: Radio( + value: element, + activeColor: AppColor.primary10, + fillColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; // Thumb color when selected + } + return Colors.grey; // Thumb color when unselected (grey) + }), + groupValue: selectedRequestType, + onChanged: (state) { + setState(() { + selectedRequestType = element; + }); + }), + ), + 8.width, + Text(element.name ?? '', style: AppTextStyles.tinyFont.copyWith(color: AppColor.neutral120)), + ], + ) + ], + ), + 8.height, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SingleItemDropDownMenu( + context: context, + title: context.translation.site, + initialValue: _assetDestination.site, + showShadow: false, + backgroundColor: AppColor.neutral100, + showAsBottomSheet: true, + onSelect: (value) { + _assetDestination.site = value; + _assetDestination.building = null; + _assetDestination.floor = null; + _assetDestination.department = null; + _selectedNurse = null; + Provider.of(context, listen: false).siteId = value!.id!.toInt(); + Provider.of(context, listen: false).getData(); + setState(() {}); + }, + ).expanded, + 8.width, + SingleItemDropDownMenu( + context: context, + title: context.translation.building, + initialValue: _assetDestination.building, + showShadow: false, + backgroundColor: AppColor.neutral100, + enabled: _assetDestination.site?.buildings?.isNotEmpty ?? false, + staticData: _assetDestination.site?.buildings ?? [], + onSelect: (value) { + _assetDestination.building = value; + _assetDestination.floor = null; + _assetDestination.department = null; + setState(() {}); + }, + ).expanded, + ], + ), + 8.height, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SingleItemDropDownMenu( + context: context, + title: context.translation.floor, + showShadow: false, + initialValue: _assetDestination.floor, + backgroundColor: AppColor.neutral100, + enabled: _assetDestination.building?.floors?.isNotEmpty ?? false, + staticData: _assetDestination.building?.floors ?? [], + onSelect: (value) { + _assetDestination.floor = value; + _assetDestination.department = null; + setState(() {}); + }, + ).expanded, + 8.width, + SingleItemDropDownMenu( + context: context, + title: context.translation.department, + showShadow: false, + initialValue: _assetDestination.department, + backgroundColor: AppColor.neutral100, + enabled: _assetDestination.floor?.departments?.isNotEmpty ?? false, + staticData: _assetDestination.floor?.departments ?? [], + onSelect: (value) { + _assetDestination.department = value; + _assetDestination.room = null; + setState(() {}); + }, + ).expanded, + ], + ), + 8.height, + // SingleItemDropDownMenu( + // context: context, + // title: context.translation.room, + // initialValue: _assetDestination.room, + // backgroundColor:AppColor.neutral100, + // enabled: _assetDestination.department?.rooms?.isNotEmpty ?? false, + // staticData: _assetDestination.department?.rooms ?? [], + // onSelect: (value) { + // _assetDestination.room = value; + // setState(() {}); + // }, + // ), + // 8.height, + // NurseMenu( + // title: context.translation.receiverName, + // initialValue: _selectedNurse, + // + // enable: _assetDestination.site != null, + // onSelect: (employee) { + // if (employee != null) { + // _selectedNurse = employee; + // setState(() {}); + // } + // }, + // ), + // 16.height, + AppTextFormField( + controller: _commentsController, + backgroundColor: AppColor.neutral100, + labelText: context.translation.callComments, + labelStyle: AppTextStyles.textFieldLabelStyle, + alignLabelWithHint: true, + textInputType: TextInputType.multiline, + showShadow: false, + onSaved: (text) { + _transferModel.comment = text; + }, + ), + 8.height, + 23.height, + MultiFilesPicker( + label: context.translation.attachImage, + files: _deviceImages, + buttonColor: AppColor.black10, + onlyImages: true, + buttonIcon: 'image-plus'.toSvgAsset(color: AppColor.neutral120), + ), + // 100.height, + ], + ).toShadowContainer(context).paddingOnly(top: 20, start: 16, end: 16), + ).expanded, + FooterActionButton.footerContainer( + child: AppFilledButton(buttonColor: AppColor.primary10, label: context.translation.submitRequest, maxWidth: true, onPressed: _onSubmit + // buttonColor: AppColor.primary10, + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/views/pages/device_transfer/request_device_transfer.dart b/lib/views/pages/device_transfer/request_device_transfer.dart deleted file mode 100644 index ea7ccb03..00000000 --- a/lib/views/pages/device_transfer/request_device_transfer.dart +++ /dev/null @@ -1,211 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart'; -import 'package:test_sa/controllers/providers/api/status_drop_down/employee/nurse_provider.dart'; -import 'package:test_sa/controllers/providers/api/user_provider.dart'; -import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; -import 'package:test_sa/extensions/context_extension.dart'; -import 'package:test_sa/extensions/int_extensions.dart'; -import 'package:test_sa/extensions/text_extensions.dart'; -import 'package:test_sa/extensions/widget_extensions.dart'; -import 'package:test_sa/models/device/asset.dart'; -import 'package:test_sa/models/device/asset_transfer.dart'; -import 'package:test_sa/models/employee.dart'; -import 'package:test_sa/models/new_models/department.dart'; -import 'package:test_sa/models/new_models/floor.dart'; -import 'package:test_sa/models/new_models/room_model.dart'; -import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; -import 'package:test_sa/views/widgets/status/employee/nurse_menu.dart'; - -import '../../../models/new_models/building.dart'; -import '../../../models/new_models/site.dart'; -import '../../../new_views/common_widgets/app_filled_button.dart'; -import '../../../new_views/common_widgets/default_app_bar.dart'; -import '../../../new_views/common_widgets/single_item_drop_down_menu.dart'; -import '../../../providers/gas_request_providers/site_provider.dart'; -import '../../../providers/loading_list_notifier.dart'; -import '../../widgets/equipment/pick_asset.dart'; - -class RequestDeviceTransfer extends StatefulWidget { - static const String id = "/request-device-transfer"; - - const RequestDeviceTransfer({Key? key}) : super(key: key); - - @override - State createState() => _RequestDeviceTransferState(); -} - -class _RequestDeviceTransferState extends State { - UserProvider? _userProvider; - SettingProvider? _settingProvider; - late AssetTransferProvider _deviceTransferProvider; - final TextEditingController _requestedQuantityController = TextEditingController(); - final AssetTransfer _transferModel = AssetTransfer(); - final GlobalKey _formKey = GlobalKey(); - final GlobalKey _scaffoldKey = GlobalKey(); - final TextEditingController _receiverNameController = TextEditingController(), _commentsController = TextEditingController(); - final Asset _assetDestination = Asset(); - Asset? _pickedAsset; - Employee? receiverEndUser; - Employee? _selectedNurse; - - @override - void setState(VoidCallback fn) { - if (mounted) super.setState(() {}); - } - - void _onSubmit() async { - _transferModel.assetId = _pickedAsset?.id; - _transferModel.destSiteId = _assetDestination.site?.id; - _transferModel.destBuildingId = _assetDestination.building?.id; - _transferModel.destFloorId = _assetDestination.floor?.id; - _transferModel.destDepartmentId = _assetDestination.department?.id; - _transferModel.destRoomId = _assetDestination.room?.id; - _transferModel.receiverEndUserId = _selectedNurse?.id; - if (!_formKey.currentState!.validate() || !(await _transferModel.validate(context))) { - return; - } - _formKey.currentState!.save(); - await _deviceTransferProvider.createRequest(context: context, assetDestination: _transferModel, asset: _pickedAsset!); - } - - @override - void dispose() { - _requestedQuantityController.dispose(); - _deviceTransferProvider.reset(); - _receiverNameController.dispose(); - _commentsController.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - _userProvider = Provider.of(context, listen: false); - _settingProvider = Provider.of(context, listen: false); - _deviceTransferProvider = Provider.of(context, listen: false); - // _selectedNurse ??= Employee(id: _userProvider.user.userID, name: _userProvider.user.username); - - return Scaffold( - key: _scaffoldKey, - appBar: DefaultAppBar(title: context.translation.newTransferRequest), - body: Form( - key: _formKey, - child: SafeArea( - child: Column( - children: [ - SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - 16.height, - PickAsset( - device: _pickedAsset, - onPickAsset: (asset) { - _pickedAsset = asset; - setState(() {}); - }, - ), - 16.height, - context.translation.receiverDetails.heading5(context), - 8.height, - SingleItemDropDownMenu( - context: context, - title: context.translation.destinationSite, - initialValue: _assetDestination.site, - onSelect: (value) { - _assetDestination.site = value; - _assetDestination.building = null; - _assetDestination.floor = null; - _assetDestination.department = null; - _selectedNurse = null; - Provider.of(context, listen: false).siteId = value!.id!.toInt(); - Provider.of(context, listen: false).getData(); - setState(() {}); - }, - ), - 8.height, - SingleItemDropDownMenu( - context: context, - title: context.translation.building, - initialValue: _assetDestination.building, - enabled: _assetDestination.site?.buildings?.isNotEmpty ?? false, - staticData: _assetDestination.site?.buildings ?? [], - onSelect: (value) { - _assetDestination.building = value; - _assetDestination.floor = null; - _assetDestination.department = null; - setState(() {}); - }, - ), - 8.height, - SingleItemDropDownMenu( - context: context, - title: context.translation.floor, - initialValue: _assetDestination.floor, - enabled: _assetDestination.building?.floors?.isNotEmpty ?? false, - staticData: _assetDestination.building?.floors ?? [], - onSelect: (value) { - _assetDestination.floor = value; - _assetDestination.department = null; - setState(() {}); - }, - ), - 8.height, - SingleItemDropDownMenu( - context: context, - title: context.translation.department, - initialValue: _assetDestination.department, - enabled: _assetDestination.floor?.departments?.isNotEmpty ?? false, - staticData: _assetDestination.floor?.departments ?? [], - onSelect: (value) { - _assetDestination.department = value; - _assetDestination.room = null; - setState(() {}); - }, - ), - 8.height, - SingleItemDropDownMenu( - context: context, - title: context.translation.room, - initialValue: _assetDestination.room, - enabled: _assetDestination.department?.rooms?.isNotEmpty ?? false, - staticData: _assetDestination.department?.rooms ?? [], - onSelect: (value) { - _assetDestination.room = value; - setState(() {}); - }, - ), - 8.height, - NurseMenu( - title: context.translation.receiverName, - initialValue: _selectedNurse, - enable: _assetDestination.site != null, - onSelect: (employee) { - if (employee != null) { - _selectedNurse = employee; - setState(() {}); - } - }, - ), - 16.height, - context.translation.comments.heading5(context), - 8.height, - AppTextFormField( - controller: _commentsController, - labelText: context.translation.comments, - onSaved: (text) { - _transferModel.comment = text; - }, - ), - 100.height, - ], - ), - ).expanded, - AppFilledButton(label: context.translation.submitRequest, maxWidth: true, onPressed: _onSubmit) - ], - ).paddingOnly(start: 16, end: 16, bottom: 24), - ), - ), - ); - } -} diff --git a/lib/views/pages/user/land_page.dart b/lib/views/pages/user/land_page.dart index 198ba167..da3c34ce 100644 --- a/lib/views/pages/user/land_page.dart +++ b/lib/views/pages/user/land_page.dart @@ -19,7 +19,7 @@ // // import '../../../models/enums/user_types.dart'; // import '../../widgets/land_page/land_page_item.dart'; -// import '../device_transfer/request_device_transfer.dart'; +// import '../device_transfer/create__asset_transfer_request.dart'; // import 'requests/requests_page.dart'; // // @Deprecated("Use the page which is inside the [new_views/pages/land_page] folder") diff --git a/lib/views/widgets/equipment/asset_picker.dart b/lib/views/widgets/equipment/asset_picker.dart index bc3dcd17..31dc9ba1 100644 --- a/lib/views/widgets/equipment/asset_picker.dart +++ b/lib/views/widgets/equipment/asset_picker.dart @@ -15,10 +15,12 @@ class AssetPicker extends StatelessWidget { final bool editable; final bool showAssetInfo; final Color? borderColor; + Color? backgroundColor; final bool forPPM; final bool showLoading; - const AssetPicker({Key? key, this.editable = true, this.device, this.onPick,this.borderColor, this.showAssetInfo = true, this.forPPM = false, this.showLoading = false}) : super(key: key); + AssetPicker({Key? key, this.editable = true, this.device, this.onPick, this.borderColor, this.showAssetInfo = true, this.forPPM = false, this.backgroundColor, this.showLoading = false}) + : super(key: key); @override Widget build(BuildContext context) { @@ -29,7 +31,7 @@ class AssetPicker extends StatelessWidget { height: 50, alignment: Alignment.center, decoration: BoxDecoration( - color: AppColor.blueStatus(context), + color: backgroundColor ?? AppColor.blueStatus(context), borderRadius: BorderRadius.circular(10), // boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.03), blurRadius: 14)], ), @@ -43,7 +45,10 @@ class AssetPicker extends StatelessWidget { ], ), ).onPress(() async { - Asset? device = await Navigator.of(context).push(MaterialPageRoute(builder: (context)=>AssetScanQr(title: context.translation.assetScan,))) as Asset?; + Asset? device = await Navigator.of(context).push(MaterialPageRoute( + builder: (context) => AssetScanQr( + title: context.translation.assetScan, + ))) as Asset?; if (device != null) { onPick!(device); } @@ -53,7 +58,7 @@ class AssetPicker extends StatelessWidget { height: 50, alignment: Alignment.center, decoration: BoxDecoration( - color: Colors.white, borderRadius: BorderRadius.circular(10), border: Border.all(color:borderColor?? AppColor.blueStatus(context), width: 2), + color: Colors.white, borderRadius: BorderRadius.circular(10), border: Border.all(color: borderColor ?? AppColor.blueStatus(context), width: 2), // boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.03), blurRadius: 14)], ), padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight), @@ -66,7 +71,10 @@ class AssetPicker extends StatelessWidget { ], ), ).onPress(() async { - Asset? device = await Navigator.of(context).push(MaterialPageRoute(builder: (context)=>AssetScanQr(title: context.translation.assetScan,))) as Asset?; + Asset? device = await Navigator.of(context).push(MaterialPageRoute( + builder: (context) => AssetScanQr( + title: context.translation.assetScan, + ))) as Asset?; if (device != null) { onPick!(device); }