< Summary

Information
Class: Chronicis.Client.Components.Shared.SaveStatusIndicator
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Components/Shared/SaveStatusIndicator.razor
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 40
Line coverage: 100%
Branch coverage
100%
Covered branches: 10
Total branches: 10
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%66100%
get_IsSaving()100%11100%
get_HasUnsavedChanges()100%11100%
get_LastSaveTime()100%11100%
get_StatusClass()100%44100%

File(s)

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

#LineLine coverage
 1@* SaveStatusIndicator.razor - Reusable save status display *@
 2
 3<div class="chronicis-save-status @StatusClass">
 294    @if (IsSaving)
 5    {
 6        <MudProgressCircular Size="Size.Small" Indeterminate="true" />
 7        <span>Saving...</span>
 8    }
 219    else if (HasUnsavedChanges)
 10    {
 11        <span>⚠️ Unsaved changes</span>
 12    }
 13    else
 14    {
 1815        <span>✓ Saved@(string.IsNullOrEmpty(LastSaveTime) ? "" : $" {LastSaveTime}")</span>
 16    }
 17</div>
 18
 19@code {
 20    /// <summary>
 21    /// Whether a save operation is currently in progress.
 22    /// </summary>
 23    [Parameter]
 8624    public bool IsSaving { get; set; }
 25
 26    /// <summary>
 27    /// Whether there are unsaved changes pending.
 28    /// </summary>
 29    [Parameter]
 6930    public bool HasUnsavedChanges { get; set; }
 31
 32    /// <summary>
 33    /// Optional: Display text for when the last save occurred (e.g., "just now").
 34    /// If null or empty, just shows "Saved".
 35    /// </summary>
 36    [Parameter]
 4137    public string? LastSaveTime { get; set; }
 38
 2939    private string StatusClass => IsSaving ? "saving" : HasUnsavedChanges ? "unsaved" : "saved";
 40}