From 860a2fd0dfc91307ed9e3683c27d9de45832f144 Mon Sep 17 00:00:00 2001 From: "hanie.khodkari" Date: Tue, 3 Jun 2025 18:00:50 +0330 Subject: [PATCH] Fix destroy bug in list of items.dart --- lib/providers/items.dart | 1 + lib/providers/my_items.dart | 8 +++ .../Detail/my_items_detail_box_widget.dart | 71 +++++++++++++------ 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/lib/providers/items.dart b/lib/providers/items.dart index 7026869..cdca944 100755 --- a/lib/providers/items.dart +++ b/lib/providers/items.dart @@ -202,6 +202,7 @@ class ItemProvider extends ChangeNotifier { 'Authorization': User.token, }); + print(response.statusCode); print(response.body); if (response.statusCode == 200) { diff --git a/lib/providers/my_items.dart b/lib/providers/my_items.dart index 2c9c670..9410a21 100755 --- a/lib/providers/my_items.dart +++ b/lib/providers/my_items.dart @@ -71,6 +71,14 @@ class MyItemProvider extends ChangeNotifier { notifyListeners(); } + Future removeItems(String id) async { + myItems!.removeWhere((item) { + return item.id.toString() == id; + }); + notifyListeners(); + return true; + } + // void searchHospitalItems(String value) { // hospitalItems = []; // searchBoxValue = value; diff --git a/lib/widgets/MyItemsScreens/Detail/my_items_detail_box_widget.dart b/lib/widgets/MyItemsScreens/Detail/my_items_detail_box_widget.dart index e7919ed..d9a73a8 100755 --- a/lib/widgets/MyItemsScreens/Detail/my_items_detail_box_widget.dart +++ b/lib/widgets/MyItemsScreens/Detail/my_items_detail_box_widget.dart @@ -537,8 +537,9 @@ class ItemDetailsDataBox extends StatelessWidget { SizedBox( height: 20.0, ), - Consumer( - builder: (context, itemProvider, child) { + Consumer2( + builder: (context, itemProvider, + myItemProvider, child) { return TransferDestroyButton( deviceBlockSize: _deviceBlockSize, firstColor: Colors.black, @@ -552,14 +553,13 @@ class ItemDetailsDataBox extends StatelessWidget { listen: false) .removeItems(datas.id) .then( - (value) { + (value) async { + print("11111"); Navigator.of(context).pop(); Navigator.of(context).pop(); - Navigator.pushReplacementNamed( - context, - Routes.myItemsResultScreen, - ); itemProvider.resetLoadingButton(); + myItemProvider + .removeItems(datas.id); Fluttertoast.showToast( msg: "The item is destroyed.", toastLength: Toast.LENGTH_SHORT, @@ -626,26 +626,51 @@ class ItemDetailsDataBox extends StatelessWidget { SizedBox( height: 20.0, ), - TransferDestroyButton( - deviceBlockSize: _deviceBlockSize, - firstColor: Colors.black, - secondColor: Colors.black87, - onTap: () { - Provider.of(context, - listen: false) - .removeItems(datas.id) - .then( - (value) { - Navigator.of(context).pop(); - Navigator - .pushReplacementNamed( - context, - Routes.myItemsResultScreen, + Consumer2( + builder: (context, itemProvider, + myItemProvider, child) { + return TransferDestroyButton( + deviceBlockSize: + _deviceBlockSize, + firstColor: Colors.black, + secondColor: Colors.black87, + isLoadingButton: itemProvider + .isloadingButton, + onTap: () async { + itemProvider + .setLoadingButton(); + await Provider.of< + ItemProvider>( + context, + listen: false) + .removeItems(datas.id) + .then( + (value) async { + print("22222"); + Navigator.of(context) + .pop(); + Navigator.of(context) + .pop(); + itemProvider + .resetLoadingButton(); + myItemProvider + .removeItems( + datas.id); + Fluttertoast.showToast( + msg: + "The item is destroyed.", + toastLength: + Toast.LENGTH_SHORT, + gravity: + ToastGravity.BOTTOM, + ); + }, ); }, + text: 'Destroy', ); }, - text: 'Destroy', ), SizedBox( height: 5.0,