kDefaultInitialDateSelectionStrategy function

InternalDateTime kDefaultInitialDateSelectionStrategy({
  1. required ViewController oldViewController,
  2. required ViewConfiguration newViewConfiguration,
})

General default strategy that routes to appropriate specific strategies

Implementation

InternalDateTime kDefaultInitialDateSelectionStrategy({
  required ViewController oldViewController,
  required ViewConfiguration newViewConfiguration,
}) {
  return switch (newViewConfiguration) {
    MonthViewConfiguration _ =>
      kDefaultToMonthly(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
    ScheduleViewConfiguration _ =>
      kDefaultToSchedule(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
    final MultiDayViewConfiguration viewConfig => switch (viewConfig.type) {
        MultiDayViewType.custom when viewConfig.numberOfDays == 1 =>
          kDefaultToDaily(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
        MultiDayViewType.freeScroll when viewConfig.numberOfDays == 1 =>
          kDefaultToDaily(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
        MultiDayViewType.singleDay =>
          kDefaultToDaily(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
        _ => kDefaultToWeekly(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
      },
    // kDefaultToWeekly(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
    _ => kDefaultToDaily(oldViewController: oldViewController, newViewConfiguration: newViewConfiguration),
  };
}