showModalPopupDatePicker function

Future<DateTime?> showModalPopupDatePicker({
  1. double? height,
  2. BaseDatePickerMode mode = BaseDatePickerMode.dateAndTime,
  3. bool use24hFormat = true,
  4. DateTime? initialDateTime,
  5. DateTime? minimumDate,
  6. DateTime? maximumDate,
  7. int? minimumYear,
  8. int? maximumYear,
})

Implementation

Future<DateTime?> showModalPopupDatePicker(
    {double? height,
    BaseDatePickerMode mode = BaseDatePickerMode.dateAndTime,
    bool use24hFormat = true,
    DateTime? initialDateTime,
    DateTime? minimumDate,
    DateTime? maximumDate,
    int? minimumYear,
    int? maximumYear}) {
  DateTime dateTime = initialDateTime ?? DateTime.now();

  return showBaseBottomSheet(
    GestureDetector(
      child: SizedBox(
        height: pickerHeight + pickerTitleHeight,
        child: Material(
          type: MaterialType.transparency,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.end,
            children: <Widget>[
              BaseClickerClipRRect(
                borderRadius: const BorderRadius.only(
                  topLeft: Radius.circular(18),
                  topRight: Radius.circular(18),
                ),
                child: BasePickerTitle(
                  onCancel: () {
                    offBack();
                  },
                  onConfirm: () {
                    offBack(dateTime);
                  },
                ),
              ),
              Container(
                height: pickerHeight,
                color: BasePickerTitleConfig.config.backgroundColor,
                child: CupertinoDatePicker(
                  mode: mode,
                  use24hFormat: use24hFormat,
                  onDateTimeChanged: (changed) {
                    dateTime = changed;
                  },
                  initialDateTime: initialDateTime ?? DateTime.now(),
                  minimumDate: minimumDate,
                  maximumDate: maximumDate,
                  minimumYear: minimumYear ?? 1,
                  maximumYear: maximumYear,
                ),
              ),
            ],
          ),
        ),
      ),
      onVerticalDragUpdate: (v) => false,
    ),
    backgroundColor: Colors.transparent,
    isDismissible: true,
  );
}