import 'package:cssd/config/colors.dart'; import 'package:cssd/models/item_model.dart'; import 'package:cssd/providers/auth.dart'; import 'package:cssd/providers/items.dart'; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; import '../../../config/routes.dart'; class ItemItemBox extends StatelessWidget { final ItemResultObject? item; const ItemItemBox({ Key? key, required double deviceBlockSize, this.item, }) : _deviceBlockSize = deviceBlockSize, super(key: key); final double _deviceBlockSize; @override Widget build(BuildContext context) { final userData = Provider.of(context, listen: false).user; return GestureDetector( onTap: () => Navigator.of(context).pushNamed( Routes.itemDetailScreen, arguments: item!.id, ), child: Card( elevation: 1, child: Container( padding: EdgeInsets.symmetric(vertical: 8), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ // if (item!.udi != null) // Container( // padding: const EdgeInsets.all(6.0), // child: Text( // item!.udi!, // style: TextStyle( // fontWeight: FontWeight.w700, // fontSize: 3 * _deviceBlockSize, // ), // ), // ), // if (item!.udi != null) // SizedBox( // width: 3 * _deviceBlockSize, // ), // Spacer(), SizedBox( width: 4, ), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( width: 40 * _deviceBlockSize, child: Text( item!.name, style: TextStyle( fontSize: 3 * _deviceBlockSize, fontWeight: FontWeight.w700, ), ), ), Container( width: 30 * _deviceBlockSize, child: Row( children: [ Text( 'Udi: ', overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 3 * _deviceBlockSize, color: Colors.grey, ), ), Text( item!.udi ?? '', overflow: TextOverflow.ellipsis, style: TextStyle( fontWeight: FontWeight.w700, fontSize: 3 * _deviceBlockSize, ), ), ], ), ), Container( width: 50 * _deviceBlockSize, child: Row( children: [ Text( 'Owner: ', style: TextStyle( color: Colors.grey, fontSize: 3 * _deviceBlockSize, ), ), Text( item!.userName, style: TextStyle( fontSize: 3 * _deviceBlockSize, fontWeight: FontWeight.w700, ), ), ], ), ), ], ), Spacer(), Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ Row( mainAxisAlignment: MainAxisAlignment.end, children: [ // userData['roles']?.contains('User') ?? false // ? Container() // : InkWell( // onTap: () { // Navigator.of(context).pushNamed( // Routes.itemUpdateScreen, // arguments: item!.id, // ); // }, // child: Icon( // Icons.edit, // size: 5 * _deviceBlockSize, // color: Colors.black, // ), // ), // SizedBox( // width: 5.0, // ), userData['roles']?.contains('Admin') ?? false ? InkWell( customBorder: CircleBorder(), onTap: () { showDialog( context: context, builder: (context) { return AlertDialog( title: Text( 'Are you Confirm this item?', ), actions: [ Consumer(builder: (context, itemProvider, _) { return itemProvider.isloadingButton ? CircularProgressIndicator( color: Colors.black, ) : TextButton( onPressed: () async { itemProvider .setLoadingButton(); await Provider.of< ItemProvider>( context, listen: false) .changeStatus(item!.id, "approved") .then( (value) { if (value) { print('true'); } Navigator.of(context) .pop(); Navigator.of(context) .popAndPushNamed(Routes .itemResultScreen); Fluttertoast.showToast( msg: "Item is Confirmed.", toastLength: Toast .LENGTH_SHORT, gravity: ToastGravity .BOTTOM, ); itemProvider .resetLoadingButton(); }, ); }, child: Text('Yes'), ); }), TextButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('No'), ), ], ); }, ); }, child: Container( padding: EdgeInsets.all(7), width: 8 * _deviceBlockSize, decoration: BoxDecoration( shape: BoxShape.circle, color: kLightBlue, ), child: Icon( Icons.check, size: 4 * _deviceBlockSize, color: Colors.white, ), ), ) : userData['roles']?.contains('Supervisor') ? item!.packageId != null ? InkWell( customBorder: CircleBorder(), onTap: () { showDialog( context: context, builder: (context) { return AlertDialog( title: Text( 'Are you Confirm this item?', ), actions: [ Consumer(builder: (context, itemProvider, _) { return itemProvider .isloadingButton ? CircularProgressIndicator( color: Colors.black, ) : TextButton( onPressed: () async { itemProvider .setLoadingButton(); await Provider.of< ItemProvider>( context, listen: false) .changeStatus( item!.id, "approved") .then( (value) { if (value) { print('true'); } Navigator.of( context) .pop(); Navigator.of( context) .popAndPushNamed( Routes .itemResultScreen); Fluttertoast .showToast( msg: "Item is Confirmed.", toastLength: Toast .LENGTH_SHORT, gravity: ToastGravity .BOTTOM, ); itemProvider .resetLoadingButton(); }, ); }, child: Text('Yes'), ); }), TextButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('No'), ), ], ); }, ); }, child: Container( padding: EdgeInsets.all(7), width: 8 * _deviceBlockSize, decoration: BoxDecoration( shape: BoxShape.circle, color: kLightBlue, ), child: Icon( Icons.check, size: 4 * _deviceBlockSize, color: Colors.white, ), ), ) : Container() : Container(), SizedBox( width: 5.0, ), userData['roles']?.contains('Admin') ?? false ? InkWell( onTap: () { showDialog( context: context, builder: (context) { return AlertDialog( title: Text('Delete'), content: Text( 'Are you sure you want delete this Item?', ), actions: [ TextButton( child: Text('Yes'), onPressed: () { Navigator.of(context).pop(); Provider.of(context, listen: false) .removeItems(item!.id); }, ), TextButton( child: Text('No'), onPressed: () { Navigator.of(context).pop(); }, ), ], ); }, ); }, child: Container( padding: EdgeInsets.all(7), width: 8 * _deviceBlockSize, decoration: BoxDecoration( shape: BoxShape.circle, color: kPink, ), child: Icon( Icons.delete_outlined, size: 4 * _deviceBlockSize, color: Colors.white, ), ), ) : userData['roles']?.contains('Supervisor') ? item!.packageId != null ? InkWell( onTap: () { showDialog( context: context, builder: (context) { return AlertDialog( title: Text('Delete'), content: Text( 'Are you sure you want delete this Item?', ), actions: [ TextButton( child: Text('Yes'), onPressed: () { Navigator.of(context).pop(); Provider.of( context, listen: false) .removeItems(item!.id); }, ), TextButton( child: Text('No'), onPressed: () { Navigator.of(context).pop(); }, ), ], ); }, ); }, child: Container( padding: EdgeInsets.all(7), width: 8 * _deviceBlockSize, decoration: BoxDecoration( shape: BoxShape.circle, color: kPink, ), child: Icon( Icons.delete_outlined, size: 4 * _deviceBlockSize, color: Colors.white, ), ), ) : Container() : Container(), // (userData['roles']?.contains('User') ?? false) // ? Container() // : item?.status == "suspended" // ? Row( // mainAxisAlignment: MainAxisAlignment.end, // children: [ // InkWell( // customBorder: CircleBorder(), // onTap: () { // showDialog( // context: context, // builder: (context) { // return AlertDialog( // title: Text( // 'Are you Reject this item?'), // actions: [ // Consumer( // builder: (context, // itemProvider, _) { // return itemProvider // .isloadingButton // ? CircularProgressIndicator( // color: Colors.black, // ) // : TextButton( // onPressed: // () async { // itemProvider // .setLoadingButton(); // await Provider.of< // ItemProvider>( // context, // listen: // false) // .changeStatus( // item!.id, // "rejected") // .then( // (value) { // if (value) { // print( // 'true'); // } // Navigator.of( // context) // .pop(); // Navigator.of( // context) // .popAndPushNamed( // Routes // .itemResultScreen); // Fluttertoast // .showToast( // msg: // "Item is rejected.", // toastLength: // Toast // .LENGTH_SHORT, // gravity: // ToastGravity // .BOTTOM, // ); // itemProvider // .resetLoadingButton(); // }, // ); // }, // child: Text('Yes'), // ); // }, // ), // TextButton( // onPressed: () { // Navigator.of(context).pop(); // }, // child: Text('No'), // ), // ], // ); // }, // ); // }, // child: Container( // padding: EdgeInsets.all(7), // width: 8 * _deviceBlockSize, // decoration: BoxDecoration( // shape: BoxShape.circle, // color: kPink), // child: Icon( // Icons.close, // size: 4 * _deviceBlockSize, // color: Colors.white, // ), // ), // ), // SizedBox( // width: 5, // ), // InkWell( // customBorder: CircleBorder(), // onTap: () { // showDialog( // context: context, // builder: (context) { // return AlertDialog( // title: Text( // 'Are you Confirm this item?', // ), // actions: [ // Consumer(builder: // (context, itemProvider, _) { // return itemProvider // .isloadingButton // ? CircularProgressIndicator( // color: Colors.black, // ) // : TextButton( // onPressed: () async { // itemProvider // .setLoadingButton(); // await Provider.of< // ItemProvider>( // context, // listen: // false) // .changeStatus( // item!.id, // "approved") // .then( // (value) { // if (value) { // print('true'); // } // Navigator.of( // context) // .pop(); // Navigator.of( // context) // .popAndPushNamed( // Routes // .itemResultScreen); // Fluttertoast // .showToast( // msg: // "Item is Confirmed.", // toastLength: Toast // .LENGTH_SHORT, // gravity: // ToastGravity // .BOTTOM, // ); // itemProvider // .resetLoadingButton(); // }, // ); // }, // child: Text('Yes'), // ); // }), // TextButton( // onPressed: () { // Navigator.of(context).pop(); // }, // child: Text('No'), // ), // ], // ); // }, // ); // }, // child: Container( // padding: EdgeInsets.all(7), // width: 8 * _deviceBlockSize, // decoration: BoxDecoration( // shape: BoxShape.circle, // color: kLightBlue, // ), // child: Icon( // Icons.check, // size: 4 * _deviceBlockSize, // color: Colors.white, // ), // ), // ), // ], // ) // : Container(), SizedBox( width: 5.0, ), // InkWell( // customBorder: CircleBorder(), // onTap: () { // Navigator.of(context).pushNamed( // Routes.itemDetailScreen, // arguments: item!.id, // ); // }, // child: Container( // padding: EdgeInsets.all(7), // width: 9 * _deviceBlockSize, // decoration: BoxDecoration( // shape: BoxShape.circle, // color: Colors.black, // ), // child: Icon( // FontAwesomeIcons.fileAlt, // size: 5 * _deviceBlockSize, // color: Colors.white, // ), // ), // ), ], ), ], ), SizedBox( width: 4, ) ], ), ), ), ); } }