EditPentry Screen & It's Pages

merge-requests/8/head
zaid_daoud 3 years ago
parent 0e87b0fbf9
commit 76969ea01b

@ -147,22 +147,22 @@ class RegularVisitsProvider extends ChangeNotifier {
} }
Future<int> updatePentry({ Future<int> updatePentry({
required String host, required String? host,
required User user, required User? user,
required Pentry pentry, required Pentry? pentry,
required Visit visit, required Visit? visit,
}) async { }) async {
try { try {
Response response; Response response;
Map<String, String> body = pentry.toMap(); Map<String, String>? body = pentry?.toMap();
body["uid"] = user.id ?? ""; body?["uid"] = user?.id ?? "";
body["token"] = user.token ?? ""; body?["token"] = user?.token ?? "";
response = await post( response = await post(
Uri.parse("$host${URLs.updatePentry}/${visit.id}"), Uri.parse("$host${URLs.updatePentry}/${visit?.id}"),
body: body, body: body,
); );
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
visit.status = pentry.ppmVisitStatus; visit?.status = pentry?.ppmVisitStatus;
notifyListeners(); notifyListeners();
} }
return response.statusCode; return response.statusCode;

@ -44,21 +44,15 @@ class Pentry {
Map<String, String> toMap() { Map<String, String> toMap() {
Map<String, String> map = {}; Map<String, String> map = {};
if (ppmVisitStatus != null) if (ppmVisitStatus != null) map["visit_status"] = ppmVisitStatus!.id.toString();
map["visit_status"] = ppmVisitStatus!.id.toString();
if (status != null) map["pentry_status"] = status!.id.toString(); if (status != null) map["pentry_status"] = status!.id.toString();
if (travelingHours != null) map["traveling_hours"] = travelingHours!; if (travelingHours != null) map["traveling_hours"] = travelingHours!;
if (imageFile != null) if (imageFile != null) map["file_attachement"] = base64Encode(imageFile!.readAsBytesSync());
map["file_attachement"] = base64Encode(imageFile!.readAsBytesSync()); map["actual_date"] = ((actualVisitDate?.millisecondsSinceEpoch ?? 0) / 1000).toStringAsFixed(0);
map["actual_date"] = ((actualVisitDate?.millisecondsSinceEpoch ?? 0) / 1000)
.toStringAsFixed(0);
if (timer != null) { if (timer != null) {
map["start_date"] = map["start_date"] = ((timer!.startAt?.millisecondsSinceEpoch ?? 0) / 1000).toStringAsFixed(0);
((timer!.startAt?.millisecondsSinceEpoch??0) / 1000).toStringAsFixed(0); map["end_date"] = (((timer!.endAt)?.millisecondsSinceEpoch ?? 0) / 1000).toStringAsFixed(0);
map["end_date"] = map["working_hours"] = ((timer!.durationInSecond ?? 0) / 60 / 60).toStringAsFixed(5);
(((timer!.endAt)?.millisecondsSinceEpoch??0) / 1000).toStringAsFixed(0);
map["working_hours"] =
((timer!.durationInSecond??0) / 60 / 60).toStringAsFixed(5);
} }
// if(contacts?.isNotEmpty == true) { // if(contacts?.isNotEmpty == true) {
// for(int i = 0;i<contacts.length;i++){ // for(int i = 0;i<contacts.length;i++){
@ -67,10 +61,8 @@ class Pentry {
// }); // });
// } // }
// } // }
map["ppmCheckLists"] = map["ppmCheckLists"] = jsonEncode(ppmCheckLists?.map((e) => e.toMap()).toList());
jsonEncode(ppmCheckLists?.map((e) => e.toMap()).toList()); map["calibrationTools"] = jsonEncode(calibrationTools?.map((e) => e.toMap()).toList());
map["calibrationTools"] =
jsonEncode(calibrationTools?.map((e) => e.toMap()).toList());
map["pmKits"] = jsonEncode(pmKits?.map((e) => e.toMap()).toList()); map["pmKits"] = jsonEncode(pmKits?.map((e) => e.toMap()).toList());
return map; return map;
} }
@ -85,34 +77,24 @@ class Pentry {
List<PMKit> pmKits = []; List<PMKit> pmKits = [];
if (map['pmKits'] != null) { if (map['pmKits'] != null) {
pmKits = (map['pmKits'] as List<dynamic>) pmKits = (map['pmKits'] as List<dynamic>).map((e) => PMKit.fromMap(e as Map<String, dynamic>)).toList();
.map((e) => PMKit.fromMap(e as Map<String, dynamic>))
.toList();
} }
List<PPMCheckList> ppmCheckLists = []; List<PPMCheckList> ppmCheckLists = [];
if (map['ppmCheckLists'] != null) { if (map['ppmCheckLists'] != null) {
ppmCheckLists = (map['ppmCheckLists'] as List<dynamic>) ppmCheckLists = (map['ppmCheckLists'] as List<dynamic>).map((e) => PPMCheckList.fromMap(e as Map<String, dynamic>)).toList();
.map((e) => PPMCheckList.fromMap(e as Map<String, dynamic>))
.toList();
} }
List<CalibrationTool> calibrationTools = []; List<CalibrationTool> calibrationTools = [];
if (map['calibrationTools'] != null) { if (map['calibrationTools'] != null) {
calibrationTools = (map['calibrationTools'] as List<dynamic>) calibrationTools = (map['calibrationTools'] as List<dynamic>).map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>)).toList();
.map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>))
.toList();
} }
return Pentry( return Pentry(
status: Lookup.fromJson(map["pentry_status"]), status: Lookup.fromJson(map["pentry_status"]),
ppmVisitStatus: Lookup.fromJson(map["visit_status"]), ppmVisitStatus: Lookup.fromJson(map["visit_status"]),
actualVisitDate: getDate(map["actual_date"]), actualVisitDate: getDate(map["actual_date"]),
travelingHours: map["traveling_hours"], travelingHours: map["traveling_hours"],
timer: TimerModel( timer: TimerModel(startAt: getDate(map["start_date"]), endAt: getDate(map["end_date"]), durationInSecond: (int.tryParse(map["working_hours"] ?? "") ?? 0) * 60 * 60),
startAt: getDate(map["start_date"]),
endAt: getDate(map["end_date"]),
durationInSecond:
(int.tryParse(map["working_hours"] ?? "") ?? 0) * 60 * 60),
// contacts: contacts, // contacts: contacts,
ppmCheckLists: ppmCheckLists, ppmCheckLists: ppmCheckLists,
calibrationTools: calibrationTools, calibrationTools: calibrationTools,
@ -120,9 +102,7 @@ class Pentry {
); );
} }
static getDate(String date) { static getDate(String? date) {
return date.isEmpty return date == null || date.isEmpty ? null : DateTime.fromMillisecondsSinceEpoch((int.tryParse(date) ?? 0) * 1000);
? null
: DateTime.fromMillisecondsSinceEpoch((int.tryParse(date) ?? 0) * 1000);
} }
} }

@ -1,7 +1,6 @@
import '../lookup.dart'; import '../lookup.dart';
class PMKit{ class PMKit {
Lookup? itemCode; Lookup? itemCode;
String? itemName; String? itemName;
String? preparationTimeFrame; String? preparationTimeFrame;
@ -10,37 +9,29 @@ class PMKit{
String? quantityNeeded; String? quantityNeeded;
String? quantityReserved; String? quantityReserved;
PMKit({ PMKit({this.itemCode, this.itemName, this.preparationTimeFrame, this.kitFrequencyDemand, this.availability, this.quantityNeeded, this.quantityReserved});
this.itemCode,
this.itemName,
this.preparationTimeFrame,
this.kitFrequencyDemand,
this.availability,
this.quantityNeeded,
this.quantityReserved
});
Map<String, String> toMap() { Map<String, String> toMap() {
return { return {
if(itemCode != null) 'itemCode': (itemCode?.id).toString(), if (itemCode != null) 'itemCode': (itemCode?.id).toString(),
if(itemName != null) 'itemName': itemName!, if (itemName != null) 'itemName': itemName!,
if(preparationTimeFrame != null) 'preparationTimeFrame': preparationTimeFrame!, if (preparationTimeFrame != null) 'preparationTimeFrame': preparationTimeFrame!,
if(kitFrequencyDemand != null) 'kitFrequencyDemand': kitFrequencyDemand!, if (kitFrequencyDemand != null) 'kitFrequencyDemand': kitFrequencyDemand!,
if(availability != null) 'availability': availability!, if (availability != null) 'availability': availability!,
if(quantityNeeded != null) 'quantityNeeded': quantityNeeded!, if (quantityNeeded != null) 'quantityNeeded': quantityNeeded!,
if(quantityReserved != null) 'quantityReserved': quantityReserved!, if (quantityReserved != null) 'quantityReserved': quantityReserved!,
}; };
} }
factory PMKit.fromMap(Map<String, dynamic> map) { factory PMKit.fromMap(Map<String, dynamic> map) {
return PMKit( return PMKit(
itemCode: Lookup.fromJson(map['itemCode']), itemCode: Lookup.fromJson(map['itemCode']),
itemName: map['itemName'] as String, itemName: map['itemName'] as String?,
preparationTimeFrame: map['preparationTimeFrame'] as String, preparationTimeFrame: map['preparationTimeFrame'] as String?,
kitFrequencyDemand: map['kitFrequencyDemand'] as String, kitFrequencyDemand: map['kitFrequencyDemand'] as String?,
availability: map['availability'] as String, availability: map['availability'] as String?,
quantityNeeded: map['quantityNeeded'] as String, quantityNeeded: map['quantityNeeded'] as String?,
quantityReserved: map['quantityReserved'] as String, quantityReserved: map['quantityReserved'] as String?,
); );
} }
} }

@ -1,7 +1,6 @@
import '../lookup.dart'; import '../lookup.dart';
class PPMCheckList{ class PPMCheckList {
Lookup? status; Lookup? status;
String? title; String? title;
String? comment; String? comment;
@ -16,19 +15,19 @@ class PPMCheckList{
Map<String, String> toMap() { Map<String, String> toMap() {
return { return {
if(status != null) 'status': status!.id.toString(), if (status != null) 'status': status!.id.toString(),
if(title != null) 'title': title!, if (title != null) 'title': title!,
if(comment != null) 'comment': comment!, if (comment != null) 'comment': comment!,
if(measuredValue != null) 'measuredValue': measuredValue!, if (measuredValue != null) 'measuredValue': measuredValue!,
}; };
} }
factory PPMCheckList.fromMap(Map<String, dynamic> map) { factory PPMCheckList.fromMap(Map<String, dynamic> map) {
return PPMCheckList( return PPMCheckList(
status: Lookup.fromJson(map['status']), status: Lookup.fromJson(map['status']),
title: map['title'] as String, title: map['title'] as String?,
comment: map['comment'] as String, comment: map['comment'] as String?,
measuredValue: map['measuredValue'] as String, measuredValue: map['measuredValue'] as String?,
); );
} }
} }

@ -20,50 +20,48 @@ import '../../../../widgets/pentry/pentry_ppm_check_list_form.dart';
class EditPentry extends StatefulWidget { class EditPentry extends StatefulWidget {
final Pentry? pentry; final Pentry? pentry;
final Visit? visit; final Visit? visit;
const EditPentry({Key? key,this.pentry, this.visit}) : super(key: key);
const EditPentry({Key? key, this.pentry, this.visit}) : super(key: key);
@override @override
State<EditPentry> createState() => _EditPentryState(); State<EditPentry> createState() => _EditPentryState();
} }
class _EditPentryState extends State<EditPentry> with SingleTickerProviderStateMixin{ class _EditPentryState extends State<EditPentry> with SingleTickerProviderStateMixin {
bool _isLoading = false; bool _isLoading = false;
bool _validate = false; bool _validate = false;
late Subtitle _subtitle; Subtitle? _subtitle;
late UserProvider _userProvider; late UserProvider _userProvider;
late SettingProvider _settingProvider; late SettingProvider _settingProvider;
late RegularVisitsProvider _regularVisitsProvider; late RegularVisitsProvider _regularVisitsProvider;
late Pentry _pentry; Pentry? _pentry;
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>(); final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
late TabController _tabController; late final TabController _tabController;
_onSubmit() async { _onSubmit() async {
_validate = true; _validate = true;
if(!_pentry.validate()) { if (!(_pentry?.validate() ?? false)) {
setState(() { }); setState(() {});
return; return;
} }
_isLoading = true; _isLoading = true;
setState(() {}); setState(() {});
int status = await _regularVisitsProvider.updatePentry( int status = await _regularVisitsProvider.updatePentry(user: _userProvider.user, host: _settingProvider.host, pentry: _pentry, visit: widget.visit);
user: _userProvider.user!, _isLoading = false;
host: _settingProvider.host??"",
pentry: _pentry,
visit: widget.visit!
);
_isLoading =false;
setState(() {}); setState(() {});
if(status >= 200 && status < 300){ if (status >= 200 && status < 300) {
Fluttertoast.showToast( if (_subtitle != null) {
msg: _subtitle.requestCompleteSuccessfully, Fluttertoast.showToast(
); msg: _subtitle!.requestCompleteSuccessfully,
);
}
// Navigator.of(context).pop(); // Navigator.of(context).pop();
}else{ } else {
String errorMessage = HttpStatusManger.getStatusMessage( String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
status: status, subtitle: _subtitle);
Fluttertoast.showToast( Fluttertoast.showToast(
msg: errorMessage, msg: errorMessage,
); );
@ -72,7 +70,7 @@ class _EditPentryState extends State<EditPentry> with SingleTickerProviderStateM
@override @override
void initState() { void initState() {
_pentry = widget.pentry!; _pentry = widget.pentry;
_tabController = TabController(length: 4, vsync: this); _tabController = TabController(length: 4, vsync: this);
super.initState(); super.initState();
} }
@ -85,7 +83,7 @@ class _EditPentryState extends State<EditPentry> with SingleTickerProviderStateM
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_subtitle = AppLocalization.of(context)!.subtitle!; _subtitle = AppLocalization.of(context)?.subtitle;
_userProvider = Provider.of<UserProvider>(context); _userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context); _settingProvider = Provider.of<SettingProvider>(context);
_regularVisitsProvider = Provider.of<RegularVisitsProvider>(context); _regularVisitsProvider = Provider.of<RegularVisitsProvider>(context);
@ -98,91 +96,101 @@ class _EditPentryState extends State<EditPentry> with SingleTickerProviderStateM
stateCode: 200, stateCode: 200,
onRefresh: () async {}, onRefresh: () async {},
child: Column( child: Column(
children: [ children: [
Material( Material(
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.primary,
child: Padding( child: Padding(
padding: const EdgeInsets.all(2.0), padding: const EdgeInsets.all(2.0),
child: TabBar( child: TabBar(
controller: _tabController, controller: _tabController,
isScrollable: true, isScrollable: true,
onTap: (index){ onTap: (index) {
setState(() {}); setState(() {});
}, },
tabs: const [ tabs: const [
Tab(text: "PPM Check List",), Tab(
Tab(text: "Calibration Tools",), text: "PPM Check List",
Tab(text: "PK Kits",), ),
Tab(text: "Pentry",), Tab(
]), text: "Calibration Tools",
),
Tab(
text: "PK Kits",
),
Tab(
text: "Pentry",
),
]),
),
),
Expanded(
child: Stack(
children: [
TabBarView(
physics: const NeverScrollableScrollPhysics(),
controller: _tabController,
children: [
PentryPPMCheckListForm(
models: _pentry?.ppmCheckLists,
enableValidate: _validate,
),
PentryCalibrationToolForm(
models: _pentry?.calibrationTools,
enableValidate: _validate,
),
PentryPMKitForm(
models: _pentry?.pmKits,
enableValidate: _validate,
),
PentryInfoForm(
model: _pentry,
enableValidate: _validate,
)
],
),
Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
if (_tabController.index != 0)
ASmallButton(
text: _subtitle?.back,
onPressed: () {
_tabController.animateTo(
_tabController.index - 1,
);
setState(() {});
},
),
const Spacer(),
if (_tabController.index != _tabController.length - 1)
ASmallButton(
text: _subtitle?.next,
onPressed: () {
_tabController.animateTo(
_tabController.index + 1,
);
setState(() {});
},
),
if (_tabController.index == _tabController.length - 1)
ASmallButton(
text: _subtitle?.update,
onPressed: _onSubmit,
),
],
),
),
)
],
),
), ),
),
Expanded(
child: Stack(
children: [
TabBarView(
physics: const NeverScrollableScrollPhysics(),
controller: _tabController,
children: [
PentryPPMCheckListForm(
models: _pentry.ppmCheckLists,
enableValidate: _validate,
),
PentryCalibrationToolForm(
models: _pentry.calibrationTools,
enableValidate: _validate,
),
PentryPMKitForm(
models: _pentry.pmKits,
enableValidate: _validate,
),
PentryInfoForm(
model: _pentry,
enableValidate: _validate,
)
],
),
Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
if(_tabController.index != 0)
ASmallButton(
text: _subtitle.back,
onPressed: (){
_tabController.animateTo(_tabController.index - 1,);
setState(() {});
},
),
const Spacer(),
if(_tabController.index != _tabController.length -1)
ASmallButton(
text: _subtitle.next,
onPressed: (){
_tabController.animateTo(_tabController.index + 1,);
setState(() {});
},
),
if(_tabController.index == _tabController.length -1)
ASmallButton(
text: _subtitle.update,
onPressed: _onSubmit,
),
],
),
),
)
],
),
),
], ],
) ),
), ),
), ),
); );
} }
} }

@ -13,7 +13,9 @@ class PentryPPMCheckListForm extends StatefulWidget {
final List<PPMCheckList>? models; final List<PPMCheckList>? models;
final bool? enableValidate; final bool? enableValidate;
const PentryPPMCheckListForm({ const PentryPPMCheckListForm({
Key? key, this.models, this.enableValidate, Key? key,
this.models,
this.enableValidate,
}) : super(key: key); }) : super(key: key);
@override @override
@ -21,99 +23,112 @@ class PentryPPMCheckListForm extends StatefulWidget {
} }
class _PentryPPMCheckListFormState extends State<PentryPPMCheckListForm> { class _PentryPPMCheckListFormState extends State<PentryPPMCheckListForm> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final subtitle = AppLocalization.of(context)?.subtitle; final subtitle = AppLocalization.of(context)?.subtitle;
return ListView.builder( return ListView.builder(
padding: EdgeInsets.only( padding: EdgeInsets.only(
top: 12 * AppStyle.getScaleFactor(context), top: 12 * AppStyle.getScaleFactor(context), left: 12 * AppStyle.getScaleFactor(context), right: 12 * AppStyle.getScaleFactor(context), bottom: 80 * AppStyle.getScaleFactor(context)),
left: 12 * AppStyle.getScaleFactor(context), itemCount: (widget.models?.length ?? 0) + 1,
right: 12 * AppStyle.getScaleFactor(context), itemBuilder: (context, index) {
bottom: 80 * AppStyle.getScaleFactor(context) if (index == widget.models?.length) {
), return AButton(
itemCount: (widget.models?.length??0) + 1, text: subtitle?.add ?? "",
itemBuilder: (context,index){ onPressed: () {
if(index == widget.models?.length){ widget.models?.add(PPMCheckList());
return AButton( setState(() {});
text: subtitle?.add??"",
onPressed: (){
widget.models!.add(PPMCheckList());
setState(() {});
},
);
}
final model = widget.models![index];
return ListView(
shrinkWrap: true,
physics: const ClampingScrollPhysics(),
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ASubTitle("#${index+1}"),
if(index != 0)
ASmallButton(
color: Theme.of(context).colorScheme.error,
text: subtitle!.delete,
onPressed: (){
widget.models!.remove(model);
setState(() {});
},
),
],
),
const SizedBox(height: 8,),
const ASubTitle("Task"),
const SizedBox(height: 4,),
ATextFormField(
initialValue: (model.title ?? "").toString(),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.subtitle1,
textInputType: TextInputType.text,
onChange: (value){
model.title = value;
},
),
const SizedBox(height: 8,),
ASubTitle(subtitle?.status??""),
const SizedBox(height: 4,),
PentryTaskStatusMenu(
initialValue: model.status,
onSelect: (status){
model.status = status;
}, },
), );
const SizedBox(height: 8,), }
const ASubTitle("Comment"), final model = widget.models?[index];
const SizedBox(height: 4,), return ListView(
ATextFormField( shrinkWrap: true,
initialValue: (model.comment ?? "").toString(), physics: const ClampingScrollPhysics(),
textAlign: TextAlign.center, children: [
style: Theme.of(context).textTheme.subtitle1, Row(
textInputType: TextInputType.text, mainAxisAlignment: MainAxisAlignment.spaceBetween,
onChange: (value){ children: [
model.comment = value; ASubTitle("#${index + 1}"),
}, if (index != 0)
), ASmallButton(
const SizedBox(height: 8,), color: Theme.of(context).colorScheme.error,
const ASubTitle("Measured Value"), text: subtitle?.delete,
const SizedBox(height: 4,), onPressed: () {
ATextFormField( widget.models?.remove(model);
initialValue: (model.measuredValue ?? "").toString(), setState(() {});
textAlign: TextAlign.center, },
style: Theme.of(context).textTheme.subtitle1, ),
textInputType: TextInputType.text, ],
onChange: (value){ ),
model.measuredValue = value; const SizedBox(
}, height: 8,
), ),
const SizedBox(height: 8,), const ASubTitle("Task"),
Divider(color: Theme.of(context).textTheme.titleMedium?.color,), const SizedBox(
], height: 4,
); ),
} ATextFormField(
); initialValue: (model?.title ?? "").toString(),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.subtitle1,
textInputType: TextInputType.text,
onChange: (value) {
model?.title = value;
},
),
const SizedBox(
height: 8,
),
ASubTitle(subtitle?.status ?? ""),
const SizedBox(
height: 4,
),
PentryTaskStatusMenu(
initialValue: model?.status,
onSelect: (status) {
model?.status = status;
},
),
const SizedBox(
height: 8,
),
const ASubTitle("Comment"),
const SizedBox(
height: 4,
),
ATextFormField(
initialValue: (model?.comment ?? "").toString(),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.subtitle1,
textInputType: TextInputType.text,
onChange: (value) {
model?.comment = value;
},
),
const SizedBox(
height: 8,
),
const ASubTitle("Measured Value"),
const SizedBox(
height: 4,
),
ATextFormField(
initialValue: (model?.measuredValue ?? "").toString(),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.subtitle1,
textInputType: TextInputType.text,
onChange: (value) {
model?.measuredValue = value;
},
),
const SizedBox(
height: 8,
),
Divider(
color: Theme.of(context).textTheme.titleMedium?.color,
),
],
);
});
} }
} }

@ -26,11 +26,11 @@ class SingleStatusMenuState extends State<SingleStatusMenu> {
@override @override
void didUpdateWidget(covariant SingleStatusMenu oldWidget) { void didUpdateWidget(covariant SingleStatusMenu oldWidget) {
if (widget.initialStatus != null) { if (widget.initialStatus != null) {
_selectedStatus = widget.statuses?.firstWhere((element) { _selectedStatus = widget.initialStatus?.id != null
return element.id == widget.initialStatus?.id; ? widget.statuses?.firstWhere((element) {
}); return element.id == widget.initialStatus?.id;
} else { })
_selectedStatus = null; : null;
} }
super.didUpdateWidget(oldWidget); super.didUpdateWidget(oldWidget);
} }
@ -38,9 +38,11 @@ class SingleStatusMenuState extends State<SingleStatusMenu> {
@override @override
void initState() { void initState() {
if (widget.initialStatus != null) { if (widget.initialStatus != null) {
_selectedStatus = widget.statuses?.firstWhere((element) { _selectedStatus = widget.initialStatus?.id != null
return element.id == widget.initialStatus?.id; ? widget.statuses?.firstWhere((element) {
}); return element.id == widget.initialStatus?.id;
})
: null;
} }
super.initState(); super.initState();
@ -87,9 +89,7 @@ class SingleStatusMenuState extends State<SingleStatusMenu> {
value: value, value: value,
child: Text( child: Text(
value.label ?? '', value.label ?? '',
style: Theme.of(context).textTheme.titleMedium?.copyWith( style: Theme.of(context).textTheme.titleMedium?.copyWith(color: Theme.of(context).primaryColor, fontWeight: FontWeight.w600),
color: Theme.of(context).primaryColor,
fontWeight: FontWeight.w600),
), ),
); );
}).toList(), }).toList(),

Loading…
Cancel
Save