asset loading fix.

main_design2.0
Sikander Saleem 8 months ago
parent bddc7ded1f
commit e2750094d9

@ -43,7 +43,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
@override
Widget build(BuildContext context) {
assetId ??= ModalRoute.of(context).settings.arguments;
_assetProvider ??= Provider.of<AssetProvider>(context);
_assetProvider ??= Provider.of<AssetProvider>(context, listen: false);
_assetProvider?.stateCode = null;
return Scaffold(
appBar: DefaultAppBar(title: context.translation.assetDetails),
@ -62,6 +62,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
return const Center(child: ALoading());
} else if (snapshot.hasData) {}
if (snapshot.hasData) {
AssetByIdModel assetModel = snapshot.data;
return SingleChildScrollView(
padding: const EdgeInsets.all(16),
child: Column(
@ -80,7 +81,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage(
_assetProvider.assetById?.assetPhoto != null ? URLs.getFileUrl(_assetProvider.assetById.assetPhoto) : "https://www.lasteelcraft.com/images/no-image-available.png"),
assetModel?.assetPhoto != null ? URLs.getFileUrl(assetModel.assetPhoto) : "https://www.lasteelcraft.com/images/no-image-available.png"),
)),
),
),
@ -89,14 +90,14 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (_assetProvider.assetById.commissioningStatus != null)
if (assetModel.commissioningStatus != null)
StatusLabel(
label: _assetProvider.assetById.commissioningStatus.name,
textColor: AppColor.getRequestStatusTextColorByName(context, _assetProvider.assetById.commissioningStatus.name),
backgroundColor: AppColor.getRequestStatusColorByName(context, _assetProvider.assetById.commissioningStatus.name),
label: assetModel.commissioningStatus.name,
textColor: AppColor.getRequestStatusTextColorByName(context, assetModel.commissioningStatus.name),
backgroundColor: AppColor.getRequestStatusColorByName(context, assetModel.commissioningStatus.name),
),
if (_assetProvider.assetById.commissioningStatus != null) 8.height,
(_assetProvider.assetById?.modelDefinition?.assetName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-").heading5(context),
if (assetModel.commissioningStatus != null) 8.height,
(assetModel?.modelDefinition?.assetName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-").heading5(context),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -104,11 +105,11 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"${context.translation.assetNo}: ${_assetProvider.assetById.multiAssets.first.assetNumber}".bodyText(context),
"${context.translation.modelName}: ${_assetProvider.assetById.modelDefinition.modelName}".bodyText(context),
"${context.translation.supplier}: ${_assetProvider.assetById.supplier?.suppliername ?? "-"}".bodyText(context),
"${context.translation.manufacture}: ${_assetProvider.assetById.modelDefinition.manufacturerName}".bodyText(context),
"${context.translation.location}: ${_assetProvider.assetById.site.custName?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context),
"${context.translation.assetNo}: ${assetModel.multiAssets.first.assetNumber}".bodyText(context),
"${context.translation.modelName}: ${assetModel.modelDefinition.modelName}".bodyText(context),
"${context.translation.supplier}: ${assetModel.supplier?.suppliername ?? "-"}".bodyText(context),
"${context.translation.manufacture}: ${assetModel.modelDefinition.manufacturerName}".bodyText(context),
"${context.translation.location}: ${assetModel.site.custName?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context),
],
).expanded,
8.width,
@ -117,9 +118,9 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
children: [
/// TODO: theres no [ORACLE CODE] available to preview
// "${context.translation.oracleCode}: ${"-"}".bodyText(context),
"${context.translation.snNo}: ${_assetProvider.assetById.multiAssets.first.assetSerialNo}".bodyText(context),
"${context.translation.site}: ${_assetProvider.assetById?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
"${context.translation.md}: ${_assetProvider.assetById?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
"${context.translation.snNo}: ${assetModel.multiAssets.first.assetSerialNo}".bodyText(context),
"${context.translation.site}: ${assetModel?.site?.custName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
"${context.translation.md}: ${assetModel?.department?.departmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "-"}".bodyText(context),
],
).expanded,
],
@ -127,14 +128,14 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
8.height,
const Divider(color: AppColor.neutral30, height: 1, thickness: 1),
8.height,
"${context.translation.installationDate}: ${_assetProvider.assetById.installationDate.toAssetDetailsFormat ?? "-"}".bodyText(context),
"${context.translation.nextPmDate}: ${_assetProvider.assetById.nextPMDate.toAssetDetailsFormat}".bodyText(context),
"${context.translation.lastPmDate}: ${_assetProvider.assetById.lastPMDate.toAssetDetailsFormat}".bodyText(context),
if ((_assetProvider.assetById.modelDefinition.assetDescription ?? "").isNotEmpty) ...[
"${context.translation.installationDate}: ${assetModel.installationDate.toAssetDetailsFormat ?? "-"}".bodyText(context),
"${context.translation.nextPmDate}: ${assetModel.nextPMDate.toAssetDetailsFormat}".bodyText(context),
"${context.translation.lastPmDate}: ${assetModel.lastPMDate.toAssetDetailsFormat}".bodyText(context),
if ((assetModel.modelDefinition.assetDescription ?? "").isNotEmpty) ...[
8.height,
const Divider(color: AppColor.neutral30, height: 1, thickness: 1),
8.height,
_assetProvider.assetById.modelDefinition.assetDescription.bodyText(context),
assetModel.modelDefinition.assetDescription.bodyText(context),
]
],
)

@ -28,10 +28,24 @@ class PentryTBSForm extends StatefulWidget {
}
class _PentryTBSFormState extends State<PentryTBSForm> {
Ppm _model;
@override
void initState() {
_model = widget.model;
super.initState();
}
@override
void dispose() {
print("disposeddddddd");
super.dispose();
}
@override
Widget build(BuildContext context) {
widget.model?.files ??= [];
widget.model?.files = (widget.model.files ?? []).where((element) => element.attachmentName != null && element.attachmentName.isNotEmpty).toList();
_model?.files ??= [];
_model?.files = (_model.files ?? []).where((element) => element.attachmentName != null && element.attachmentName.isNotEmpty).toList();
return SingleChildScrollView(
child: Column(
@ -40,7 +54,7 @@ class _PentryTBSFormState extends State<PentryTBSForm> {
8.height,
SingleItemDropDownMenu<Lookup, PPMVisitStatusProvider>(
context: context,
initialValue: widget.model.visitStatusId == null ? null : Lookup(name: widget.model.visitStatusName ?? "", id: widget.model.visitStatusId),
initialValue: _model.visitStatusId == null ? null : Lookup(name: _model.visitStatusName ?? "", id: _model.visitStatusId),
title: context.translation.ppmVisit,
onSelect: (value) {
if (value?.value == 4) {
@ -50,93 +64,93 @@ class _PentryTBSFormState extends State<PentryTBSForm> {
}
if (value != null) {
widget.model.visitStatusName = value.name;
widget.model.visitStatusId = value.id;
_model.visitStatusName = value.name;
_model.visitStatusId = value.id;
}
},
),
8.height,
AppTimer(
label: context.translation.timer,
timer: widget.model.tbsTimer,
enabled: widget.model.tbsTimer.endAt == null,
timer: _model.tbsTimer,
enabled: _model.tbsTimer.endAt == null,
onChange: (timer) async {
widget.model.tbsTimer = timer;
_model.tbsTimer = timer;
return true;
},
),
8.height,
SingleItemDropDownMenu<Lookup, PPMDeviceStatusProvider>(
context: context,
initialValue: widget.model.deviceStatusId == null ? null : Lookup(name: widget.model.deviceStatusName ?? "", id: widget.model.deviceStatusId),
initialValue: _model.deviceStatusId == null ? null : Lookup(name: _model.deviceStatusName ?? "", id: _model.deviceStatusId),
title: context.translation.deviceStatus,
onSelect: (value) {
if (value != null) {
widget.model.deviceStatusId = value.id;
widget.model.deviceStatusName = value.name;
_model.deviceStatusId = value.id;
_model.deviceStatusName = value.name;
}
},
),
8.height,
ADatePicker(
label: context.translation.actualVisitDate,
date: DateTime.tryParse(widget.model.actualDate ?? ""),
date: DateTime.tryParse(_model.actualDate ?? ""),
from: DateTime.now().subtract(const Duration(days: 30)),
onDatePicker: (date) {
if (date == null) return;
widget.model.actualDate = date?.toIso8601String();
_model.actualDate = date?.toIso8601String();
setState(() {});
},
),
8.height,
ADatePicker(
label: context.translation.expectedVisitDate,
date: DateTime.tryParse(widget.model.expectedDate ?? ""),
date: DateTime.tryParse(_model.expectedDate ?? ""),
from: DateTime.now().subtract(const Duration(days: 30)),
enable: false,
onDatePicker: (date) {
if (date == null) return;
widget.model.expectedDate = date?.toIso8601String();
_model.expectedDate = date?.toIso8601String();
setState(() {});
},
),
8.height,
AppTextFormField(
labelText: context.translation.travelingHours,
initialValue: (widget.model.travelingHours ?? "").toString(),
initialValue: (_model.travelingHours ?? "").toString(),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleMedium,
textInputType: TextInputType.number,
onChange: (value) {
widget.model.travelingHours = value;
_model.travelingHours = value;
},
),
8.height,
MultiFilesPicker(
label: context.translation.attachImage,
files: widget.model.files.map((e) => File(e.attachmentName)).toList(),
files: _model.files.map((e) => File(e.attachmentName)).toList(),
onChange: (files) {
widget.model.files = files.map((e) => PpmAttachments(attachmentName: e.path)).toList();
_model.files = files.map((e) => PpmAttachments(attachmentName: e.path)).toList();
},
),
8.height,
ESignature(
title: context.translation.nurseSignature,
oldSignature: widget.model.nurseSignature,
newSignature: widget.model.localNurseSignature,
oldSignature: _model.nurseSignature,
newSignature: _model.localNurseSignature,
onChange: (signature) {
widget.model.localNurseSignature = signature;
widget.model.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
_model.localNurseSignature = signature;
_model.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
},
),
8.height,
ESignature(
title: context.translation.engSign,
oldSignature: widget.model.engSignature,
newSignature: widget.model.localEngineerSignature,
oldSignature: _model.engSignature,
newSignature: _model.localEngineerSignature,
onChange: (signature) {
widget.model.localEngineerSignature = signature;
widget.model.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
_model.localEngineerSignature = signature;
_model.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
},
),
8.height,

Loading…
Cancel
Save