showDateRangePickerDialogOnWidget function

Future<DateRange?> showDateRangePickerDialogOnWidget({
  1. required String cancelText,
  2. required String confirmText,
  3. required double outHeight,
  4. required double inerHeight,
  5. required BuildContext widgetContext,
  6. required DateRangerPickerWidgetBuilder pickerBuilder,
  7. required ValueChanged<DateRange?>? onDateRangeSelected,
  8. BuildContext? context,
  9. Color barrierColor = Colors.transparent,
  10. Widget dialogFooterBuilder({
    1. DateRange? selectedDateRange,
    })?,
  11. Offset delta = const Offset(0, 60),
})

A function to show the dateRange picker dialog on a widget.

  • widgetContext - The context of the widget that will be used to show the dialog.
  • context - The context of the dialog. If null, the widgetContext will be used.
  • dialogFooterBuilder - A builder to construct the footer widget of the dialog.
  • pickerBuilder - A builder to construct the date range picker widget.
  • delta - The offset of the dialog from the widget.
  • onDateRangeSelected - Called when a date range is selected.
  • barrierColor - The color of the barrier.

Implementation

Future<DateRange?> showDateRangePickerDialogOnWidget({
  required String cancelText,
  required String confirmText,
  required double outHeight,
  required double inerHeight,
  required BuildContext widgetContext,
  required DateRangerPickerWidgetBuilder pickerBuilder,
  required ValueChanged<DateRange?>? onDateRangeSelected,
  BuildContext? context,
  Color barrierColor = Colors.transparent,
  Widget Function({DateRange? selectedDateRange})? dialogFooterBuilder,
  Offset delta = const Offset(0, 60),
}) {
  // Compute widget position on screen
  final RenderBox renderBox = widgetContext.findRenderObject() as RenderBox;
  final Offset offset = renderBox.localToGlobal(Offset.zero);

  // Show the dateRange picker dialog and get the selected date range
  final dateRange = showDateRangePickerDialog(
      cancelText: cancelText,
      confirmText: confirmText,
      outHeight: outHeight,
      inerHeight: inerHeight,
      context: context ?? widgetContext,
      footerBuilder: dialogFooterBuilder,
      barrierColor: barrierColor,
      builder: pickerBuilder,
      offset: offset + delta,
      onDateRangeSelected: onDateRangeSelected
  );
  // print("showDateRangePickerDialog");
  // print(dateRange);

  return dateRange;
}