< Summary

Information
Class: Pomodoro.Web.Components.Settings.DataManagementSettings
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/Settings/DataManagementSettings.razor
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 63
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%1010100%
get_IsExporting()100%11100%
get_IsImporting()100%11100%
get_IsClearing()100%11100%
get_ImportResult()100%11100%
get_OnExportJson()100%11100%
get_OnImport()100%11100%
get_OnConfirmClearData()100%11100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/Settings/DataManagementSettings.razor

#LineLine coverage
 1<div class="settings-section">
 2    <h2>Data Management</h2>
 3
 4    <div class="setting-item">
 5        <div class="setting-label">
 6            <span class="setting-icon">📤</span>
 7            <span class="setting-name">Export Backup</span>
 8        </div>
 9        <button class="btn-export btn-export-json" @onclick="OnExportJson" disabled="@IsExporting" title="Export all dat
 18010            @(IsExporting ? "Exporting..." : "Export JSON")
 11        </button>
 12    </div>
 13
 14    <div class="setting-item">
 15        <div class="setting-label">
 16            <span class="setting-icon">📥</span>
 17            <span class="setting-name">Import Backup</span>
 18        </div>
 19        <div class="import-container">
 20            <label class="btn-import @(IsImporting ? "disabled" : "")">
 18021                @(IsImporting ? "Importing..." : "Import JSON")
 22                <InputFile OnChange="OnImport" accept=".json" class="file-input" disabled="@IsImporting" />
 23            </label>
 18024            @if (ImportResult != null)
 425            {
 426                <span class="import-result">@ImportResult</span>
 427            }
 28        </div>
 29    </div>
 30
 31    <div class="setting-item setting-danger">
 32        <div class="setting-label">
 33            <span class="setting-icon">🗑️</span>
 34            <span class="setting-name">Clear All Data</span>
 35        </div>
 36        <button class="btn-clear" @onclick="OnConfirmClearData" disabled="@IsClearing" title="Delete all data">
 18037            @(IsClearing ? "Clearing..." : "Clear")
 38        </button>
 39    </div>
 40</div>
 41
 42@code {
 43    [Parameter]
 53544    public bool IsExporting { get; set; }
 45
 46    [Parameter]
 71447    public bool IsImporting { get; set; }
 48
 49    [Parameter]
 53550    public bool IsClearing { get; set; }
 51
 52    [Parameter]
 36053    public string? ImportResult { get; set; }
 54
 55    [Parameter]
 35556    public EventCallback OnExportJson { get; set; }
 57
 58    [Parameter]
 35459    public EventCallback<InputFileChangeEventArgs> OnImport { get; set; }
 60
 61    [Parameter]
 35562    public EventCallback OnConfirmClearData { get; set; }
 63}