showBasePopupDatePicker function

Future<DateTime?> showBasePopupDatePicker({
  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?> showBasePopupDatePicker(
    {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: BaseDefaultConfig.defaultPickerConfig.pickerHeight +
            BaseDefaultConfig.defaultPickerConfig.titleHeight,
        child: Material(
          type: MaterialType.transparency,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.end,
            children: <Widget>[
              BasePickerClipRRect(
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(
                      BaseDefaultConfig.defaultPickerConfig.cornerRadius),
                  topRight: Radius.circular(
                      BaseDefaultConfig.defaultPickerConfig.cornerRadius),
                ),
                child: BasePickerTitle(
                  onCancel: () {
                    offBack();
                  },
                  onConfirm: () {
                    offBack(dateTime);
                  },
                ),
              ),
              Container(
                height: BaseDefaultConfig.defaultPickerConfig.pickerHeight,
                color: BaseDefaultConfig.defaultPickerConfig.backgroundColor,
                child: CupertinoTheme(
                  data: CupertinoThemeData(
                    textTheme: CupertinoTextThemeData(
                      dateTimePickerTextStyle: BaseDefaultConfig
                          .defaultPickerConfig.itemTextSelectedStyle,
                    ),
                  ),
                  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,
  );
}