selectStartAndEndDate function
Implementation
Future<String?> selectStartAndEndDate(BuildContext context,
{bool dayLimitMore = false}) async {
DateTime? startDate;
DateTime? endDate;
String? dateToString;
await showDatePicker(
context: context,
initialDate: startDate ?? DateTime.now(),
firstDate: DateTime.now(),
lastDate: !dayLimitMore
? DateTime.now().add(Duration(days: 365))
: DateTime(DateTime.now().year + 3000),
locale: Locale(appStore.selectedLanguageCode),
cancelText: "Cancel",
confirmText: "Ok",
helpText: 'Select Start Date',
builder: (_, child) {
return Theme(
data: appStore.isDarkMode ? ThemeData.dark() : ThemeData.light(),
child: child!,
);
},
).then((date) async {
if (date != null) {
startDate = date;
} else {
eventFilterStore.setStartDate("");
}
if (startDate != null) {
await showDatePicker(
context: context,
initialDate: endDate ?? DateTime.now(),
firstDate: DateTime.now(),
lastDate: !dayLimitMore
? DateTime.now().add(Duration(days: 365))
: DateTime(DateTime.now().year + 3000),
locale: Locale(appStore.selectedLanguageCode),
cancelText: "Cancel",
confirmText: "Ok",
helpText: 'Select End Date',
builder: (_, child) {
return Theme(
data: appStore.isDarkMode ? ThemeData.dark() : ThemeData.light(),
child: child!,
);
},
).then((date) async {
if (date != null) {
if (date.isBefore(startDate!)) {
toast("End date is greater then start date");
} else {
endDate = date;
}
}
;
});
}
}).catchError((e) {
toast(e.toString());
});
if (endDate != null) {
eventFilterStore
.setEndDate(formatDate(endDate.toString(), format: DATE_FORMAT_7));
eventFilterStore
.setStartDate(formatDate(startDate.toString(), format: DATE_FORMAT_7));
dateToString = formatDate(startDate.toString(), format: DATE_FORMAT_9) +
" to " +
formatDate(endDate.toString(), format: DATE_FORMAT_9);
} else {
eventFilterStore.setEndDate("");
eventFilterStore.setStartDate("");
}
return dateToString;
}