diff --git a/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs b/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs
index e70e30e60a..c3eaf01a99 100644
--- a/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs
+++ b/src/app/dev/DevToys.Api/Tool/GUI/Components/IUICard.cs
@@ -1,7 +1,7 @@
namespace DevToys.Api;
///
-/// A component that represents a empty card and for the option value.
+/// A component that represents an empty card and for the option value.
///
public interface IUICard : IUIElement
{
@@ -12,7 +12,7 @@ public interface IUICard : IUIElement
}
[DebuggerDisplay($"Id = {{{nameof(Id)}}}")]
-internal class UICard : UIElement, IUICard
+internal class UICard : UIElementWithChildren, IUICard
{
internal UICard(string? id, IUIElement uiElement)
: base(id)
@@ -22,6 +22,11 @@ internal UICard(string? id, IUIElement uiElement)
}
public IUIElement UIElement { get; }
+
+ protected override IEnumerable GetChildren()
+ {
+ yield return UIElement;
+ }
}
public static partial class GUI
diff --git a/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs b/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs
index 13edb16620..76b56f4346 100644
--- a/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs
+++ b/src/app/tests/DevToys.UnitTests/Tool/GUI/Components/UIElementWithChildrenTests.cs
@@ -72,4 +72,18 @@ public void GetChildElementById_ReturnsFirstMatchingChild_WhenMultipleChildrenWi
);
Assert.Equal(child1.Object, element.GetChildElementById("child"));
}
+
+ [Fact]
+ public void GetChildElementById_ReturnsChild_WhenChildIsCard()
+ {
+ var child = new Mock();
+ child.Setup(c => c.Id).Returns("child-id");
+
+ var card = new UICard("card-id", child.Object);
+
+ var element = new TestUIElement("parent", new List { card });
+
+ Assert.Equal(card, element.GetChildElementById("card-id"));
+ Assert.Equal(child.Object, element.GetChildElementById("child-id"));
+ }
}