showPersianDatePicker function
Future
showPersianDatePicker(
- BuildContext context,
- Future<
void> onSubmit(- BuildContext context,
- Jalali date
- int? initYear,
- int? initMonth,
- int? initDay,
- BorderRadiusGeometry? border,
- YearDirection yearDirection = YearDirection.backward,
- Color backgroundColor = Colors.white,
- EdgeInsets margin = EdgeInsets.zero,
- ButtonsStyle submitButtonStyle = const ButtonsStyle(backgroundColor: Colors.white, textColor: Colors.black, radius: 5, text: 'تایید', visible: true),
- ButtonsStyle cancelButtonStyle = const ButtonsStyle(backgroundColor: Colors.white, textColor: Colors.black, radius: 5, text: 'انصراف', visible: true),
- bool validate(
- BuildContext context,
- Jalali date
Implementation
Future showPersianDatePicker(
BuildContext context,
Future<void> Function(BuildContext context, Jalali date) onSubmit, {
final int? initYear,
final int? initMonth,
final int? initDay,
final BorderRadiusGeometry? border,
final YearDirection yearDirection = YearDirection.backward,
final Color backgroundColor = Colors.white,
final EdgeInsets margin = EdgeInsets.zero,
final ButtonsStyle submitButtonStyle = const ButtonsStyle(
backgroundColor: Colors.white,
textColor: Colors.black,
radius: 5,
text: 'تایید',
visible: true,
),
final ButtonsStyle cancelButtonStyle = const ButtonsStyle(
backgroundColor: Colors.white,
textColor: Colors.black,
radius: 5,
text: 'انصراف',
visible: true,
),
final bool Function(BuildContext context, Jalali date)? validate,
}) async {
FocusScope.of(context).requestFocus(FocusNode());
showModalBottomSheet(
context: context,
shape: RoundedRectangleBorder(
borderRadius: border ?? BorderRadius.all(Radius.zero),
),
builder: (context) {
Jalali j;
if (initYear != null && initMonth != null && initDay != null) {
j = Jalali(initYear, initMonth, initDay);
return Directionality(
textDirection: TextDirection.rtl,
child: ClipRRect(
borderRadius: (border as BorderRadius),
//BorderRadius.circular(50),
child: DatePickerModal(
onSubmit: onSubmit,
validate: validate,
initDay: j.day,
initMonth: j.month,
initYear: j.year,
yearDirection: yearDirection,
backgroundColor: backgroundColor,
margin: margin,
submitButtonStyle: submitButtonStyle,
cancelButtonStyle: cancelButtonStyle,
),
),
);
}
return Directionality(
textDirection: TextDirection.rtl,
child: ClipRRect(
borderRadius: (border as BorderRadius), //BorderRadius.circular(50),
child: DatePickerModal(
onSubmit: onSubmit,
validate: validate,
yearDirection: yearDirection,
backgroundColor: backgroundColor,
margin: margin,
submitButtonStyle: submitButtonStyle,
cancelButtonStyle: cancelButtonStyle,
),
),
);
});
}