< Summary

Information
Class: Pomodoro.Web.Components.TaskList
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/TaskList.razor
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 64
Line coverage: 100%
Branch coverage
100%
Covered branches: 14
Total branches: 14
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%1414100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/TaskList.razor

#LineLine coverage
 1@inherits TaskListBase
 2@using Pomodoro.Web.Models
 3
 4<div class="task-list">
 5    <div class="task-list-header">
 6        <h3>📋 TASKS</h3>
 7    </div>
 8
 9    <div class="add-task-section">
 36910        @if (IsAddingTask)
 1411        {
 12            <div class="add-task-form">
 13                <input type="text"
 14                       @bind="NewTaskName"
 15                        @bind:event="oninput"
 16                        @onkeydown="HandleKeyPress"
 17                        placeholder="Enter task name..."
 18                        class="task-input" />
 19                <button class="btn-icon-small btn-add" @onclick="HandleAddTask" disabled="@IsAddDisabled" title="Add">
 20                    +
 21                </button>
 22                <button class="btn-icon-small btn-cancel" @onclick="CancelAddTask" title="Cancel">
 23                    ✕
 24                </button>
 25            </div>
 1426        }
 27        else
 35528        {
 29            <button class="btn-add-task" @onclick="StartAddTask">
 30                + Add Task
 31            </button>
 35532        }
 33    </div>
 34
 35    <div class="task-items">
 121036        @foreach (var task in Tasks.Where(t => !t.IsCompleted).OrderByDescending(t => t.LastWorkedOn ?? t.CreatedAt))
 2437        {
 38            <TaskItemComponent
 39                Item="task"
 40                IsSelected="task.Id == CurrentTaskId"
 41                OnSelect="HandleTaskSelect"
 42                OnComplete="HandleTaskComplete"
 43                OnDelete="HandleTaskDelete"
 44                OnUncomplete="HandleTaskUncomplete" />
 2445        }
 46
 39947        @if (Tasks.Any(t => t.IsCompleted))
 648        {
 49            <div class="completed-section">
 50                <h4>Completed</h4>
 4851                @foreach (var task in Tasks.Where(t => t.IsCompleted).OrderByDescending(t => t.LastWorkedOn ?? t.Created
 752                {
 53                    <TaskItemComponent
 54                        Item="task"
 55                        IsSelected="false"
 56                        OnSelect="HandleTaskSelect"
 57                        OnComplete="HandleTaskComplete"
 58                        OnDelete="HandleTaskDelete"
 59                        OnUncomplete="HandleTaskUncomplete" />
 760                }
 61            </div>
 662        }
 63    </div>
 64</div>