import 'package:fcs/domain/entities/package.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/package/package_info.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'; typedef CallbackPackageSelect(Package package); class PackageListRow extends StatelessWidget { final bool isCustomer; final Package? package; final CallbackPackageSelect? callbackPackageSelect; final double dotSize = 15.0; final DateFormat dateFormat = new DateFormat("dd MMM yyyy"); PackageListRow( {Key? key, this.package, this.callbackPackageSelect, this.isCustomer = false}) : super(key: key); @override Widget build(BuildContext context) { return InkWell( onTap: () { if (callbackPackageSelect != null) { callbackPackageSelect!(package!); return; } Navigator.push( context, CupertinoPageRoute( builder: (context) => PackageInfo( package: package, isCustomer: isCustomer, )), ); }, child: Container( padding: EdgeInsets.only(left: 15, right: 15), child: Column( children: [ Row( children: [ Expanded( child: new Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: new Row( children: [ Icon(Octicons.package, color: primaryColor), SizedBox(width: 8), new Expanded( child: new Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 8.0), child: new Text( package!.id == null ? '' : package!.trackingID, style: new TextStyle( fontSize: 15.0, color: Colors.black), ), ), Padding( padding: const EdgeInsets.only(left: 8.0), child: new Text( package!.market == null ? '' : package!.market, style: new TextStyle( fontSize: 15.0, color: Colors.black), ), ), ], ), ), ], ), ), ), Column( children: [ Padding( padding: const EdgeInsets.all(3.0), child: getStatus(package!.status), ), Padding( padding: const EdgeInsets.all(0), child: new Text( dateFormat.format(package!.currentStatusDate), style: new TextStyle(fontSize: 15.0, color: Colors.grey), ), ), ], ) ], ), ], ), ), ); } }