dateRangePicker method

Future<void> dateRangePicker({
  1. DateTimeRange? withRange,
  2. DateTime? minDate,
  3. DateTime? maxDate,
  4. DateTime? currentDate,
  5. String? cancelText,
  6. String? confirmText,
  7. String? saveText,
  8. String? helpText,
  9. String? errorFormatText,
  10. String? errorInvalidText,
  11. String? errorInvalidRangeText,
  12. String? fieldEndHintText,
  13. String? fieldEndLabelText,
  14. String? fieldStartHintText,
  15. String? fieldStartLabelText,
  16. DatePickerEntryMode entryMode = DatePickerEntryMode.calendar,
  17. TextDirection? textDirection,
  18. Locale? locale,
  19. bool useRootNavigator = true,
  20. RouteSettings? routeSettings,
  21. TransitionBuilder? builder,
  22. required void onPick(
    1. DateTimeRange range
    ),
  23. VoidCallback? onCancel,
})

Implementation

Future<void> dateRangePicker({
  DateTimeRange? withRange,
  DateTime? minDate,
  DateTime? maxDate,
  DateTime? currentDate,
  String? cancelText,
  String? confirmText,
  String? saveText,
  String? helpText,
  String? errorFormatText,
  String? errorInvalidText,
  String? errorInvalidRangeText,
  String? fieldEndHintText,
  String? fieldEndLabelText,
  String? fieldStartHintText,
  String? fieldStartLabelText,
  DatePickerEntryMode entryMode = DatePickerEntryMode.calendar,
  ui.TextDirection? textDirection,
  Locale? locale,
  bool useRootNavigator = true,
  RouteSettings? routeSettings,
  TransitionBuilder? builder,
  required void Function(DateTimeRange range) onPick,
  VoidCallback? onCancel,
}) async {
  final range = await showDateRangePicker(
    context: context!,
    initialDateRange: withRange,
    firstDate: minDate ?? Date.from(year: 2000),
    lastDate: maxDate ?? Date.now,
    currentDate: currentDate,
    cancelText: cancelText,
    confirmText: confirmText,
    saveText: saveText,
    helpText: helpText,
    errorFormatText: errorFormatText,
    errorInvalidText: errorInvalidText,
    errorInvalidRangeText: errorInvalidRangeText,
    initialEntryMode: entryMode,
    fieldEndHintText: fieldEndHintText,
    fieldEndLabelText: fieldEndLabelText,
    fieldStartHintText: fieldStartHintText,
    fieldStartLabelText: fieldStartLabelText,
    textDirection: textDirection,
    locale: locale,
    useRootNavigator: useRootNavigator,
    routeSettings: routeSettings,
    builder: builder ??
        (context, child) => Theme(
              data: context.theme.copyWith(brightness: Brightness.dark),
              child: child!,
            ),
  );
  if (range != null) {
    onPick(withRange?.apply(() => withRange
          ..start.setting(date: range.start)
          ..end.setting(date: range.end)) ??
        range);
  } else {
    onCancel?.call();
  }
}