diff --git a/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/DisabledParentSelectTest.razor b/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/DisabledParentSelectTest.razor
new file mode 100644
index 00000000..a1e16a0f
--- /dev/null
+++ b/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/DisabledParentSelectTest.razor
@@ -0,0 +1,13 @@
+@namespace MudExtensions.UnitTests.TestComponents
+
+
+
+
+
+
+
+
+
+@code {
+ string? value = null;
+}
diff --git a/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/SelectTest1.razor b/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/SelectTest1.razor
index bbb3fb61..fed38789 100644
--- a/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/SelectTest1.razor
+++ b/CodeBeam.MudBlazor.Extensions.UnitTests.Viewer/TestComponents/SelectExtended/SelectTest1.razor
@@ -1,7 +1,7 @@
@namespace MudExtensions.UnitTests.TestComponents
-
+
@@ -11,18 +11,21 @@
@code {
- public static string __description__ = "Click should open the Menu and selecting a value should update the bindable value.";
+ public static string __description__ = "Click should open the Menu and selecting a value should update the bindable value.";
- string? value = null;
- bool _focused = false;
+ [Parameter]
+ public bool Disabled { get; set; }
- private void Focused()
- {
- _focused = true;
- }
+ string? value = null;
+ bool _focused = false;
- private void Blurred()
- {
- _focused = false;
- }
+ private void Focused()
+ {
+ _focused = true;
+ }
+
+ private void Blurred()
+ {
+ _focused = false;
+ }
}
diff --git a/CodeBeam.MudBlazor.Extensions.UnitTests/Components/SelectExtendedTests.cs b/CodeBeam.MudBlazor.Extensions.UnitTests/Components/SelectExtendedTests.cs
index 167a4641..f9ca958c 100644
--- a/CodeBeam.MudBlazor.Extensions.UnitTests/Components/SelectExtendedTests.cs
+++ b/CodeBeam.MudBlazor.Extensions.UnitTests/Components/SelectExtendedTests.cs
@@ -471,7 +471,7 @@ public void SingleSelect_Should_FireTextChangedBeforeSelectedValuesChanged()
string.Join(",", selectedValues ?? new List()).Should().Be("2");
input.Click();
- comp.WaitForAssertion(()=>comp.FindAll("div.mud-list-item-extended").Count.Should().BeGreaterThan(0));
+ comp.WaitForAssertion(() => comp.FindAll("div.mud-list-item-extended").Count.Should().BeGreaterThan(0));
items = comp.FindAll("div.mud-list-item-extended").ToArray();
items[0].Click();
@@ -713,7 +713,7 @@ public void SingleSelect_Should_CallValidationFunc()
comp.FindAll("div.mud-list-item-extended")[1].Click();
// menu should be closed now
- comp.WaitForAssertion(() => menu.ClassList.Should().NotContain("mud-popover-open"));
+ comp.WaitForAssertion(() => comp.Find("div.mud-popover").ClassList.Should().NotContain("mud-popover-open"));
comp.WaitForAssertion(() => select.Instance.Value.Should().Be("2"));
select.Instance.Text.Should().Be("2");
validatedValue.Should().Be("2");
@@ -1333,5 +1333,35 @@ await comp.InvokeAsync(() =>
select.SelectedValues?.Count().Should().Be(1);
select.Text.Should().Be("test");
}
+
+ [Test]
+ public void Select_Should_NotOpen_WhenDisabled()
+ {
+ var comp = Context.RenderComponent(parameters =>
+ {
+ parameters.Add(p => p.Disabled, true);
+ });
+ var select = comp.FindComponent>();
+ var input = comp.Find("div.mud-input-control");
+
+ // Try to open the select
+ input.Click();
+ // The menu should not open
+ comp.Find("div.mud-popover").ClassList.Should().NotContain("mud-popover-open");
+ }
+
+ [Test]
+ public void Select_Should_NotOpen_WhenParentDisabled()
+ {
+ // Use a test component that wraps the select in a disabled parent
+ var comp = Context.RenderComponent();
+ var select = comp.FindComponent>();
+ var input = comp.Find("div.mud-input-control");
+
+ // Try to open the select
+ input.Click();
+ // The menu should not open
+ comp.Find("div.mud-popover").ClassList.Should().NotContain("mud-popover-open");
+ }
}
}
diff --git a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
index 8298106f..3f21747b 100644
--- a/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
+++ b/CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs
@@ -850,7 +850,7 @@ protected override async ValueTask DisposeAsyncCore()
///
protected internal async Task HandleKeyDownAsync(KeyboardEventArgs obj)
{
- if (Disabled || ReadOnly)
+ if (GetDisabledState() || GetReadOnlyState())
return;
if (_list != null && _isOpen)
@@ -997,7 +997,7 @@ public override ValueTask SelectRangeAsync(int pos1, int pos2)
///
public async Task ToggleMenu()
{
- if (Disabled || ReadOnly)
+ if (GetDisabledState() || GetReadOnlyState())
return;
if (_isOpen)
await CloseMenu();
@@ -1011,7 +1011,7 @@ public async Task ToggleMenu()
///
public async Task OpenMenu()
{
- if (Disabled || ReadOnly)
+ if (GetDisabledState() || GetReadOnlyState())
return;
_isOpen = true;
UpdateIcon();