Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<MudPopoverProvider />

<MudCalendar T="CalendarItem" ShowDatePicker="true" ShowToolbar="true" @bind-CurrentDay="@_currentDay" @bind-PickerMinDate="@_minDate" @bind-PickerMaxDate="@_maxDate" />

@code {

public static string __description__ = "MinMax Picker Date Tests";

private DateTime _currentDay = new DateTime(2025, 2, 12);
private DateTime? _minDate = new DateTime(2024, 1, 1);
private DateTime? _maxDate = new DateTime(2026, 12, 31);
}
14 changes: 14 additions & 0 deletions Heron.MudCalendar.UnitTests/Components/CalendarTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -642,4 +642,18 @@ public void DayItemMinHeightTest()
event6.Attributes["style"].Should().NotBeNull();
event6.Attributes["style"]?.Value.Should().Contain("height:50");
}

[Test]
public void MinMaxPickerDateTest()
{
var cut = Context.RenderComponent<CalendarMinMaxPickerDateTest>();
var comp = cut.FindComponent<MudCalendar<CalendarItem>>();
var picker = cut.FindComponent<MudDatePicker>();

// Check that the date picker's min date is 1/1/2024
picker.Instance.MinDate.Should().Be(new DateTime(2024, 1, 1));

// Check that the date picker's max date is 12/31/2026
picker.Instance.MaxDate.Should().Be(new DateTime(2026, 12, 31));
}
}
2 changes: 1 addition & 1 deletion Heron.MudCalendar/Components/MudCalendar.razor
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
}
@if (ShowDatePicker)
{
<CalendarDatePicker Culture="@Culture" @ref="_datePicker" OpenTo="@(View == CalendarView.Month ? OpenTo.Month : OpenTo.Date)" FirstDayOfWeek="@GetFirstDayOfWeekByCalendarView(View)" FixDay="@(View == CalendarView.Month ? 1 : null)" Date="PickerDate" DateChanged="DatePickerDateChanged" View="View" Variant="ButtonVariant" Color="Color" PickerOpened="OnDatePickerOpened"/>
<CalendarDatePicker Culture="@Culture" @ref="_datePicker" OpenTo="@(View == CalendarView.Month ? OpenTo.Month : OpenTo.Date)" FirstDayOfWeek="@GetFirstDayOfWeekByCalendarView(View)" FixDay="@(View == CalendarView.Month ? 1 : null)" Date="PickerDate" DateChanged="DatePickerDateChanged" MinDate="PickerMinDate" MaxDate="PickerMaxDate" View="View" Variant="ButtonVariant" Color="Color" PickerOpened="OnDatePickerOpened"/>
}
@if (ShowTodayButton)
{
Expand Down
20 changes: 20 additions & 0 deletions Heron.MudCalendar/Components/MudCalendar.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,26 @@ private DateTime? PickerDate
set => CurrentDay = value ?? DateTime.Today;
}

/// <summary>
/// Sets the date picker's minimum date.
/// </summary>
/// <remarks>
/// Defaults to <c>null</c>.
/// </remarks>
[Parameter]
[Category(CategoryTypes.Calendar.Behavior)]
public DateTime? PickerMinDate { get; set; }

/// <summary>
/// Sets the date picker's maximum date.
/// </summary>
/// <remarks>
/// Defaults to <c>null</c>.
/// </remarks>
[Parameter]
[Category(CategoryTypes.Calendar.Behavior)]
public DateTime? PickerMaxDate { get; set; }

/// <summary>
/// The dates that are currently visible in the Calendar.
/// </summary>
Expand Down