null safety
This commit is contained in:
@@ -18,14 +18,14 @@ import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class PackageEditor extends StatefulWidget {
|
||||
final Package package;
|
||||
final User consignee;
|
||||
final User sender;
|
||||
final Package? package;
|
||||
final User? consignee;
|
||||
final User? sender;
|
||||
PackageEditor({this.package, this.consignee, this.sender});
|
||||
|
||||
@override
|
||||
@@ -38,13 +38,13 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
|
||||
bool _isLoading = false;
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
Package _package;
|
||||
Package? _package;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_package = Package();
|
||||
_loadPackageData(null);
|
||||
_loadPackageData(widget.package!.id);
|
||||
}
|
||||
|
||||
_loadPackageData(String id) async {
|
||||
@@ -64,10 +64,10 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
}
|
||||
}
|
||||
setState(() {
|
||||
selectedMarket = _package.market ?? "";
|
||||
_descCtl.text = _package.desc;
|
||||
_remarkCtl.text = _package.remark;
|
||||
multiImgController.setImageUrls = _package.photoUrls;
|
||||
selectedMarket = _package!.market ?? "";
|
||||
_descCtl.text = _package!.desc;
|
||||
_remarkCtl.text = _package!.remark;
|
||||
multiImgController.setImageUrls = _package!.photoUrls;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: DisplayText(
|
||||
text: _package.trackingID,
|
||||
text: _package!.trackingID != null ? _package!.trackingID : "",
|
||||
labelTextKey: "processing.tracking.id",
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
)),
|
||||
@@ -174,13 +174,13 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
);
|
||||
}
|
||||
|
||||
String selectedMarket;
|
||||
String? selectedMarket;
|
||||
Widget marketDropdown() {
|
||||
List<Market> _markets = Provider.of<MarketModel>(context).markets;
|
||||
List<String> markets = _markets.map((e) => e.name).toList();
|
||||
markets.insert(0, MANAGE_MARKET);
|
||||
if (!markets.contains(selectedMarket)) {
|
||||
markets.insert(0, selectedMarket);
|
||||
markets.insert(0, selectedMarket!);
|
||||
}
|
||||
|
||||
return Row(
|
||||
@@ -210,7 +210,7 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
height: 1,
|
||||
color: Colors.grey,
|
||||
),
|
||||
onChanged: (String newValue) {
|
||||
onChanged: (String? newValue) {
|
||||
setState(() {
|
||||
if (newValue == MANAGE_MARKET) {
|
||||
selectedMarket = null;
|
||||
@@ -254,14 +254,15 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
try {
|
||||
_package.market = selectedMarket;
|
||||
_package.desc = _descCtl.text;
|
||||
_package.remark = _remarkCtl.text;
|
||||
_package.photoFiles = multiImgController.getUpdatedFile;
|
||||
_package.fcsID = widget.consignee.fcsID;
|
||||
_package.senderFCSID = widget.sender?.fcsID;
|
||||
_package!.market = selectedMarket!;
|
||||
_package!.desc = _descCtl.text;
|
||||
_package!.remark = _remarkCtl.text;
|
||||
_package!.photoFiles = multiImgController.getUpdatedFile;
|
||||
_package!.fcsID = widget.consignee!.fcsID;
|
||||
_package!.senderFCSID =
|
||||
widget.sender!.fcsID != null ? widget.sender!.fcsID : "";
|
||||
|
||||
await packageModel.updateProcessing(_package,
|
||||
await packageModel.updateProcessing(_package!,
|
||||
multiImgController.getAddedFile, multiImgController.getDeletedUrl);
|
||||
|
||||
Navigator.pop<Package>(context, _package);
|
||||
|
||||
@@ -17,12 +17,12 @@ import 'package:fcs/pages/widgets/multi_img_file.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ProcessingEditEditor extends StatefulWidget {
|
||||
final Package package;
|
||||
final Package? package;
|
||||
ProcessingEditEditor({this.package});
|
||||
|
||||
@override
|
||||
@@ -33,22 +33,22 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
TextEditingController _remarkCtl = new TextEditingController();
|
||||
TextEditingController _descCtl = new TextEditingController();
|
||||
|
||||
Package _package;
|
||||
User _user;
|
||||
Package? _package;
|
||||
User? _user;
|
||||
bool _isLoading = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_package = widget.package;
|
||||
selectedMarket = _package.market ?? "";
|
||||
_descCtl.text = _package.desc;
|
||||
_remarkCtl.text = _package.remark;
|
||||
multiImgController.setImageUrls = _package.photoUrls;
|
||||
selectedMarket = _package!.market ?? "";
|
||||
_descCtl.text = _package!.desc;
|
||||
_remarkCtl.text = _package!.remark;
|
||||
multiImgController.setImageUrls = _package!.photoUrls;
|
||||
_user = User(
|
||||
fcsID: _package.fcsID ?? "",
|
||||
name: _package.userName ?? "",
|
||||
phoneNumber: _package.phoneNumber ?? "");
|
||||
fcsID: _package!.fcsID ?? "",
|
||||
name: _package!.userName ?? "",
|
||||
phoneNumber: _package!.phoneNumber ?? "");
|
||||
}
|
||||
|
||||
final DateFormat dateFormat = DateFormat("d MMM yyyy");
|
||||
@@ -62,7 +62,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: DisplayText(
|
||||
text: _user.fcsID,
|
||||
text: _user!.fcsID,
|
||||
labelTextKey: "processing.fcs.id",
|
||||
icon: FcsIDIcon(),
|
||||
)),
|
||||
@@ -76,18 +76,18 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
],
|
||||
);
|
||||
final namebox = DisplayText(
|
||||
text: _user.name,
|
||||
text: _user!.name,
|
||||
labelTextKey: "processing.name",
|
||||
iconData: Icons.person,
|
||||
);
|
||||
final phoneNumberBox = DisplayText(
|
||||
text: _user.phoneNumber,
|
||||
text: _user!.phoneNumber,
|
||||
labelTextKey: "processing.phone",
|
||||
iconData: Icons.phone,
|
||||
);
|
||||
|
||||
final trackingIdBox = DisplayText(
|
||||
text: _package.trackingID,
|
||||
text: _package!.trackingID,
|
||||
labelTextKey: "processing.tracking.id",
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
);
|
||||
@@ -159,13 +159,13 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
);
|
||||
}
|
||||
|
||||
String selectedMarket;
|
||||
String? selectedMarket;
|
||||
Widget marketDropdown() {
|
||||
List<Market> _markets = Provider.of<MarketModel>(context).markets;
|
||||
List<String> markets = _markets.map((e) => e.name).toList();
|
||||
markets.insert(0, MANAGE_MARKET);
|
||||
if (!markets.contains(selectedMarket)) {
|
||||
markets.insert(0, selectedMarket);
|
||||
markets.insert(0, selectedMarket!);
|
||||
}
|
||||
|
||||
return Padding(
|
||||
@@ -197,7 +197,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
height: 1,
|
||||
color: Colors.grey,
|
||||
),
|
||||
onChanged: (String newValue) {
|
||||
onChanged: (String? newValue) {
|
||||
setState(() {
|
||||
if (newValue == MANAGE_MARKET) {
|
||||
selectedMarket = null;
|
||||
@@ -236,7 +236,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
}
|
||||
|
||||
_completeProcessing() async {
|
||||
if (_user.fcsID == null || _user.fcsID == "") {
|
||||
if (_user!.fcsID == null || _user!.fcsID == "") {
|
||||
showMsgDialog(context, "Error", "Expected FCS-ID");
|
||||
return;
|
||||
}
|
||||
@@ -246,11 +246,11 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
try {
|
||||
_package.fcsID = _user.fcsID;
|
||||
_package.desc = _descCtl.text;
|
||||
_package.remark = _remarkCtl.text;
|
||||
_package.market = selectedMarket;
|
||||
await packageModel.updateProcessing(_package,
|
||||
_package!.fcsID = _user!.fcsID;
|
||||
_package!.desc = _descCtl.text;
|
||||
_package!.remark = _remarkCtl.text;
|
||||
_package!.market = selectedMarket!;
|
||||
await packageModel.updateProcessing(_package!,
|
||||
multiImgController.getAddedFile, multiImgController.getDeletedUrl);
|
||||
Navigator.pop(context);
|
||||
} catch (e) {
|
||||
@@ -264,20 +264,20 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
|
||||
|
||||
isDataChanged() {
|
||||
if (isNew) {
|
||||
return _user.fcsID != "" ||
|
||||
return _user!.fcsID != "" ||
|
||||
selectedMarket != null ||
|
||||
_descCtl.text != "" ||
|
||||
_remarkCtl.text != "" ||
|
||||
multiImgController.getAddedFile.isNotEmpty;
|
||||
} else {
|
||||
var _package = Package(
|
||||
trackingID: widget.package.trackingID,
|
||||
fcsID: _user.fcsID,
|
||||
market: selectedMarket,
|
||||
trackingID: widget.package!.trackingID,
|
||||
fcsID: _user!.fcsID,
|
||||
market: selectedMarket!,
|
||||
desc: _descCtl.text,
|
||||
remark: _remarkCtl.text,
|
||||
photoUrls: widget.package.photoUrls);
|
||||
return widget.package.isChangedForEditProcessing(_package) ||
|
||||
photoUrls: widget.package!.photoUrls);
|
||||
return widget.package!.isChangedForEditProcessing(_package) ||
|
||||
multiImgController.getAddedFile.isNotEmpty ||
|
||||
multiImgController.getDeletedUrl.isNotEmpty;
|
||||
}
|
||||
|
||||
@@ -11,14 +11,14 @@ import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'model/processing_model.dart';
|
||||
import 'package_editor.dart';
|
||||
|
||||
class ProcesingEditor extends StatefulWidget {
|
||||
final Processing processing;
|
||||
final Processing? processing;
|
||||
const ProcesingEditor({this.processing});
|
||||
@override
|
||||
_ProcesingEditorState createState() => _ProcesingEditorState();
|
||||
@@ -27,9 +27,9 @@ class ProcesingEditor extends StatefulWidget {
|
||||
class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
Processing processing = Processing();
|
||||
bool _isLoading = false;
|
||||
bool _isNew;
|
||||
User consignee;
|
||||
User sender;
|
||||
late bool _isNew;
|
||||
User? consignee;
|
||||
User? sender;
|
||||
List<Package> packages = [];
|
||||
|
||||
@override
|
||||
@@ -37,7 +37,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
super.initState();
|
||||
_isNew = widget.processing == null;
|
||||
if (!_isNew) {
|
||||
processing = widget.processing;
|
||||
processing = widget.processing!;
|
||||
consignee = User(
|
||||
fcsID: processing.userID,
|
||||
name: processing.userName,
|
||||
@@ -56,7 +56,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: DisplayText(
|
||||
text: consignee != null ? consignee.fcsID : "",
|
||||
text: consignee != null ? consignee!.fcsID : "",
|
||||
labelTextKey: "processing.fcs.id",
|
||||
icon: FcsIDIcon(),
|
||||
)),
|
||||
@@ -71,14 +71,14 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
);
|
||||
|
||||
final phoneNumberBox = DisplayText(
|
||||
text: consignee != null ? consignee.phoneNumber : "",
|
||||
text: consignee != null ? consignee!.phoneNumber : "",
|
||||
labelTextKey: "processing.phone",
|
||||
maxLines: 2,
|
||||
iconData: Icons.phone,
|
||||
);
|
||||
|
||||
final namebox = DisplayText(
|
||||
text: consignee != null ? consignee.name : "",
|
||||
text: consignee != null ? consignee!.name : "",
|
||||
labelTextKey: "processing.consignee.name",
|
||||
maxLines: 2,
|
||||
iconData: Icons.person,
|
||||
@@ -98,7 +98,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: DisplayText(
|
||||
text: sender != null ? sender.fcsID : "",
|
||||
text: sender != null ? sender!.fcsID : "",
|
||||
labelTextKey: "processing.fcs.id",
|
||||
icon: FcsIDIcon(),
|
||||
)),
|
||||
@@ -113,14 +113,14 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
);
|
||||
|
||||
final shipperPhoneNumberBox = DisplayText(
|
||||
text: sender != null ? sender.phoneNumber : "",
|
||||
text: sender != null ? sender!.phoneNumber : "",
|
||||
labelTextKey: "processing.phone",
|
||||
maxLines: 2,
|
||||
iconData: Icons.phone,
|
||||
);
|
||||
|
||||
final shipperNamebox = DisplayText(
|
||||
text: sender != null ? sender.name : "",
|
||||
text: sender != null ? sender!.name : "",
|
||||
labelTextKey: "processing.shipper.name",
|
||||
maxLines: 2,
|
||||
iconData: Icons.person,
|
||||
@@ -152,7 +152,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
context, "Warning", "Please select 'Consignee'");
|
||||
return;
|
||||
}
|
||||
Package _package = await Navigator.push<Package>(
|
||||
Package? _package = await Navigator.push<Package>(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => PackageEditor(
|
||||
@@ -160,7 +160,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
consignee: this.consignee,
|
||||
)),
|
||||
);
|
||||
_addPackage(_package);
|
||||
_addPackage(_package!);
|
||||
// _savePackage(_package);
|
||||
}),
|
||||
],
|
||||
@@ -230,10 +230,10 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
return packages.map((p) {
|
||||
return InkWell(
|
||||
onTap: () async {
|
||||
Package _package = await Navigator.of(context).push<Package>(
|
||||
Package? _package = await Navigator.of(context).push<Package>(
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => PackageInfo(package: p)));
|
||||
_savePackage(_package);
|
||||
_savePackage(_package!);
|
||||
},
|
||||
child: DisplayText(
|
||||
labelTextKey: "processing.tracking.id",
|
||||
@@ -273,7 +273,7 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
|
||||
if (_isNew) {
|
||||
await processingModel.createProcessing(processing);
|
||||
} else {
|
||||
processing.id = widget.processing.id;
|
||||
processing.id = widget.processing!.id;
|
||||
await processingModel.updateProcessing(processing);
|
||||
}
|
||||
Navigator.pop(context);
|
||||
|
||||
@@ -11,7 +11,7 @@ import 'package:fcs/pages/widgets/progress.dart';
|
||||
import 'package:fcs/pages/widgets/status_tree.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
@@ -20,7 +20,7 @@ import 'processing_edit_editor.dart';
|
||||
final DateFormat dateFormat = DateFormat("d MMM yyyy");
|
||||
|
||||
class ProcessingInfo extends StatefulWidget {
|
||||
final Package package;
|
||||
final Package? package;
|
||||
ProcessingInfo({this.package});
|
||||
|
||||
@override
|
||||
@@ -29,14 +29,14 @@ class ProcessingInfo extends StatefulWidget {
|
||||
|
||||
class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
var dateFormatter = new DateFormat('dd MMM yyyy');
|
||||
Package _package;
|
||||
Package? _package;
|
||||
bool _isLoading = false;
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
initPackage(widget.package);
|
||||
initPackage(widget.package!);
|
||||
}
|
||||
|
||||
initPackage(Package package) {
|
||||
@@ -54,52 +54,52 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final trackingIdBox = DisplayText(
|
||||
text: _package.trackingID,
|
||||
text: _package != null ? _package!.trackingID : '',
|
||||
labelTextKey: "processing.tracking.id",
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
);
|
||||
var fcsIDBox = DisplayText(
|
||||
text: _package.fcsID,
|
||||
text: _package != null ? _package!.fcsID : "",
|
||||
labelTextKey: "processing.fcs.id",
|
||||
icon: FcsIDIcon(),
|
||||
);
|
||||
final phoneNumberBox = DisplayText(
|
||||
text: _package.phoneNumber,
|
||||
text: _package != null ? _package!.phoneNumber : "",
|
||||
labelTextKey: "processing.phone",
|
||||
iconData: Icons.phone,
|
||||
);
|
||||
final customerNameBox = DisplayText(
|
||||
text: _package.userName,
|
||||
text:_package!=null? _package!.userName:"",
|
||||
labelTextKey: "processing.consignee.name",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
var senderFcsIDBox = DisplayText(
|
||||
text: _package.senderFCSID,
|
||||
text:_package!=null? _package!.senderFCSID:"",
|
||||
labelTextKey: "processing.fcs.id",
|
||||
icon: FcsIDIcon(),
|
||||
);
|
||||
final senderPhoneNumberBox = DisplayText(
|
||||
text: _package.senderPhoneNumber,
|
||||
text: _package!=null?_package!.senderPhoneNumber:"",
|
||||
labelTextKey: "processing.phone",
|
||||
iconData: Icons.phone,
|
||||
);
|
||||
final senderNameBox = DisplayText(
|
||||
text: _package.senderName,
|
||||
text:_package!=null? _package!.senderName:"",
|
||||
labelTextKey: "processing.shipper.name",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
final marketBox = DisplayText(
|
||||
text: _package.market ?? "-",
|
||||
text:_package!=null? _package!.market : "-",
|
||||
labelTextKey: "processing.market",
|
||||
iconData: Icons.store,
|
||||
);
|
||||
final descBox = DisplayText(
|
||||
text: _package.desc ?? "-",
|
||||
text:_package!=null? _package!.desc : "-",
|
||||
labelTextKey: "processing.desc",
|
||||
iconData: MaterialCommunityIcons.message_text_outline,
|
||||
);
|
||||
final remarkBox = DisplayText(
|
||||
text: _package.remark ?? "-",
|
||||
text:_package!=null? _package!.remark : "-",
|
||||
labelTextKey: "processing.remark",
|
||||
iconData: Entypo.new_message,
|
||||
);
|
||||
@@ -172,10 +172,10 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
marketBox,
|
||||
descBox,
|
||||
remarkBox,
|
||||
_package.photoUrls.length == 0 ? Container() : img,
|
||||
_package!.photoUrls.length == 0 ? Container() : img,
|
||||
StatusTree(
|
||||
shipmentHistory: _package.shipmentHistory,
|
||||
currentStatus: _package.status),
|
||||
shipmentHistory: _package!.shipmentHistory,
|
||||
currentStatus: _package!.status),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
)
|
||||
@@ -199,7 +199,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
try {
|
||||
await packageModel.deleteProcessing(_package);
|
||||
await packageModel.deleteProcessing(_package!);
|
||||
Navigator.pop<bool>(context, true);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
@@ -211,7 +211,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
}
|
||||
|
||||
_gotoEditor() async {
|
||||
bool deleted = await Navigator.push<bool>(
|
||||
bool? deleted = await Navigator.push<bool>(
|
||||
context,
|
||||
CupertinoPageRoute(
|
||||
builder: (context) => ProcessingEditEditor(
|
||||
@@ -222,7 +222,7 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
|
||||
} else {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
Package p = await packageModel.getPackage(_package.id);
|
||||
Package p = await packageModel.getPackage(_package!.id);
|
||||
initPackage(p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_icons/flutter_icons.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'processing_info.dart';
|
||||
@@ -11,12 +11,12 @@ import 'processing_info.dart';
|
||||
typedef CallbackPackageSelect(Package package);
|
||||
|
||||
class ProcessingListRow extends StatelessWidget {
|
||||
final Package package;
|
||||
final CallbackPackageSelect callbackPackageSelect;
|
||||
final Package? package;
|
||||
final CallbackPackageSelect? callbackPackageSelect;
|
||||
final double dotSize = 15.0;
|
||||
final DateFormat dateFormat = new DateFormat("dd MMM yyyy");
|
||||
|
||||
ProcessingListRow({Key key, this.package, this.callbackPackageSelect})
|
||||
ProcessingListRow({Key? key, this.package, this.callbackPackageSelect})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -24,7 +24,7 @@ class ProcessingListRow extends StatelessWidget {
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
if (callbackPackageSelect != null) {
|
||||
callbackPackageSelect(package);
|
||||
callbackPackageSelect!(package!);
|
||||
return;
|
||||
}
|
||||
Navigator.push(
|
||||
@@ -57,7 +57,7 @@ class ProcessingListRow extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: new Text(
|
||||
package.id == null ? '' : package.trackingID,
|
||||
package!.id == null ? '' : package!.trackingID,
|
||||
style: new TextStyle(
|
||||
fontSize: 15.0, color: Colors.black),
|
||||
),
|
||||
@@ -65,7 +65,7 @@ class ProcessingListRow extends StatelessWidget {
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8.0),
|
||||
child: new Text(
|
||||
package.market == null ? '' : package.market,
|
||||
package!.market == null ? '' : package!.market,
|
||||
style: new TextStyle(
|
||||
fontSize: 15.0, color: Colors.black),
|
||||
),
|
||||
@@ -81,12 +81,12 @@ class ProcessingListRow extends StatelessWidget {
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(3.0),
|
||||
child: getStatus(package.status),
|
||||
child: getStatus(package!.status),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(0),
|
||||
child: new Text(
|
||||
dateFormat.format(package.currentStatusDate),
|
||||
dateFormat.format(package!.currentStatusDate),
|
||||
style: new TextStyle(fontSize: 15.0, color: Colors.grey),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user