Skip to content

Commit f18aed9

Browse files
Add Icon(Symbol) factory overload
Adds an overload that takes the WinUI Symbol enum directly for better discoverability and IntelliSense. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent c3e4abd commit f18aed9

4 files changed

Lines changed: 13 additions & 0 deletions

File tree

plugins/reactor/skills/reactor-dsl/references/reactor.api.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ Hyperlink(string text, Uri navigateUri) → RichTextHyperlink
7474
HyperlinkButton(Command command) → HyperlinkButtonElement
7575
HyperlinkButton(string content, Uri navigateUri = null, Action onClick = null) → HyperlinkButtonElement
7676
Icon(IconData data) → IconElement
77+
Icon(Symbol symbol) → IconElement
7778
Icon(string symbol) → IconElement
7879
If(bool condition, Func<Element> then, Func<Element> otherwise = null) → Element
7980
Image(string source) → ImageElement

skills/reactor.api.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ Hyperlink(string text, Uri navigateUri) → RichTextHyperlink
7474
HyperlinkButton(Command command) → HyperlinkButtonElement
7575
HyperlinkButton(string content, Uri navigateUri = null, Action onClick = null) → HyperlinkButtonElement
7676
Icon(IconData data) → IconElement
77+
Icon(Symbol symbol) → IconElement
7778
Icon(string symbol) → IconElement
7879
If(bool condition, Func<Element> then, Func<Element> otherwise = null) → Element
7980
Image(string source) → ImageElement

src/Reactor/Elements/Dsl.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,9 @@ public static BitmapIconData BitmapIcon(global::System.Uri source, bool showAsMo
875875
/// <summary>Creates a standalone icon element from an <see cref="IconData"/> instance.</summary>
876876
public static Core.IconElement Icon(IconData data) => new(data);
877877

878+
/// <summary>Creates a standalone symbol icon element from a <see cref="Symbol"/> enum value.</summary>
879+
public static Core.IconElement Icon(Symbol symbol) => new(new SymbolIconData(symbol.ToString()));
880+
878881
/// <summary>Creates a standalone symbol icon element (e.g. <c>Icon("Home")</c>).</summary>
879882
public static Core.IconElement Icon(string symbol) => new(new SymbolIconData(symbol));
880883

tests/Reactor.Tests/ElementRecordCoverageTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ public void Icon_Factory_From_String_Creates_SymbolIconData()
6262
Assert.Equal("Home", ((SymbolIconData)el.Data).Symbol);
6363
}
6464

65+
[Fact]
66+
public void Icon_Factory_From_Symbol_Enum_Creates_SymbolIconData()
67+
{
68+
var el = Factories.Icon(Microsoft.UI.Xaml.Controls.Symbol.Home);
69+
Assert.IsType<SymbolIconData>(el.Data);
70+
Assert.Equal("Home", ((SymbolIconData)el.Data).Symbol);
71+
}
72+
6573
[Fact]
6674
public void AppBar_Data_Variants_Construct()
6775
{

0 commit comments

Comments
 (0)