textFieldPersianDatePicker function

Widget textFieldPersianDatePicker({
  1. required dynamic onChange(
    1. DateTime,
    2. Jalali
    ),
  2. String? text,
  3. double? fontSize,
  4. String? hintText,
  5. String? labelText,
  6. int lines = 1,
  7. Widget? prefix,
  8. Widget? suffix,
  9. TextAlign textAlign = TextAlign.start,
  10. double? textHeight,
  11. TextEditingController? controller,
  12. Jalali? initialDate,
  13. Jalali? startDate,
  14. Jalali? endDate,
})

Implementation

Widget textFieldPersianDatePicker({
  required final Function(DateTime, Jalali) onChange,
  final String? text,
  final double? fontSize,
  final String? hintText,
  final String? labelText,
  final int lines = 1,
  final Widget? prefix,
  final Widget? suffix,
  final TextAlign textAlign = TextAlign.start,
  final double? textHeight,
  final TextEditingController? controller,
  final Jalali? initialDate,
  final Jalali? startDate,
  final Jalali? endDate,
}) {
  final Rx<Jalali> jalali = (initialDate ?? Jalali.now()).obs;
  return UTextField(
    controller: controller,
    text: text,
    labelText: labelText,
    fontSize: fontSize,
    hintText: hintText,
    textAlign: textAlign,
    readOnly: true,
    textHeight: textHeight,
    onTap: () async {
      jalali(
        await showPersianDatePicker(
          context: navigatorKey.currentContext!,
          initialDate: jalali.value,
          firstDate: startDate ?? Jalali(1320),
          lastDate: endDate ?? Jalali(1405),
        ),
      );
      onChange(jalali.value.toDateTime(), jalali.value);
    },
  );
}