< Summary

Information
Class: Chronicis.Client.Components.Shared.IconDisplay
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Components/Shared/IconDisplay.razor
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 60
Line coverage: 100%
Branch coverage
100%
Covered branches: 12
Total branches: 12
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildRenderTree(...)100%88100%
get_Icon()100%11100%
get_DefaultIcon()100%11100%
get_CssClass()100%11100%
get_Style()100%11100%
IsEmoji(...)100%22100%
IsFontAwesome(...)100%22100%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Client/Components/Shared/IconDisplay.razor

#LineLine coverage
 1@* Renders an icon - handles Font Awesome classes, emojis, or falls back to default *@
 2
 283@if (IsEmoji(Icon))
 4{
 205    <span class="@CssClass" style="@Style">@Icon</span>
 6}
 87else if (IsFontAwesome(Icon))
 8{
 9    <i class="@Icon @CssClass" style="@Style"></i>
 10}
 411else if (!string.IsNullOrEmpty(DefaultIcon))
 12{
 413    @if (IsFontAwesome(DefaultIcon))
 14    {
 15        <i class="@DefaultIcon @CssClass" style="@Style"></i>
 16    }
 17    else
 18    {
 319        <span class="@CssClass" style="@Style">@DefaultIcon</span>
 20    }
 21}
 22
 23@code {
 24    /// <summary>
 25    /// The icon to render (Font Awesome class like "fa-solid fa-dragon" or emoji like "🐉")
 26    /// </summary>
 27    [Parameter]
 8828    public string? Icon { get; set; }
 29
 30    /// <summary>
 31    /// Fallback icon if Icon is null or empty
 32    /// </summary>
 33    [Parameter]
 5734    public string? DefaultIcon { get; set; } = "👤";
 35
 36    /// <summary>
 37    /// Additional CSS classes
 38    /// </summary>
 39    [Parameter]
 3040    public string? CssClass { get; set; }
 41
 42    /// <summary>
 43    /// Inline styles
 44    /// </summary>
 45    [Parameter]
 2946    public string? Style { get; set; }
 47
 48    private bool IsEmoji(string? value)
 49    {
 3250        if (string.IsNullOrEmpty(value)) return false;
 51        // Emojis don't start with "fa-"
 2452        return !value.StartsWith("fa-");
 53    }
 54
 55    private bool IsFontAwesome(string? value)
 56    {
 1657        if (string.IsNullOrEmpty(value)) return false;
 858        return value.StartsWith("fa-");
 59    }
 60}