import 'package:fcs/domain/entities/package.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/carton/model/package_selection_model.dart'; import 'package:fcs/pages/package/package_info.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import '../../pagination/paginator_listview.dart'; import '../widgets/local_text.dart'; class PackageDetailList extends StatefulWidget { final String cartonNumber; final int packageCount; final String senderID; final String consingeeID; final String fcsShipmentID; const PackageDetailList( {super.key, required this.cartonNumber, required this.packageCount, required this.senderID, required this.consingeeID, required this.fcsShipmentID}); @override State createState() => _PackageDetailListState(); } class _PackageDetailListState extends State { final NumberFormat numberFormatter = NumberFormat("#,###"); @override void initState() { _init(); super.initState(); } _init() { context.read().loadPackages( senderId: widget.senderID, consigneeId: widget.consingeeID, shipmentId: widget.fcsShipmentID); } @override Widget build(BuildContext context) { var packageModel = context.watch(); return Scaffold( appBar: LocalAppBar( backgroundColor: Colors.white, arrowColor: primaryColor, labelColor: primaryColor, titleWidget: Column( children: [ LocalText( context, "box.package.count", fontSize: 20, color: primaryColor, translationVariables: [ numberFormatter.format(widget.packageCount) ], ), Text(widget.cartonNumber, style: TextStyle(fontSize: 15, color: Colors.black)) ], ), ), body: PaginatorListView( paginatorListener: packageModel.getPackages!, rowBuilder: (p) { Package package = p; return InkWell( onTap: () { Navigator.push( context, CupertinoPageRoute( builder: (context) => PackageInfo(package: package)), ); }, child: Container( padding: EdgeInsets.only(left: 15, right: 15), child: Column( children: [ Row( children: [ Expanded( child: Padding( padding: const EdgeInsets.symmetric(vertical: 10), child: Row( children: [ Icon(Octicons.package, color: primaryColor), Expanded( child: Padding( padding: const EdgeInsets.only(left: 15), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( package.id == null ? '' : package.trackingID!, style: TextStyle( fontSize: 15.0, color: Colors.black), ), Padding( padding: const EdgeInsets.only(top: 5), child: Text( package.market == null ? '' : package.market!, style: TextStyle( fontSize: 15.0, color: Colors.grey), ), ), ], ), ), ), ], ), ), ), ], ), ], ), ), ); }, color: primaryColor)); } }