< Summary

Information
Class: Pomodoro.Web.Components.History.TimelineSection
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/History/TimelineSection.razor
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 52
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%1212100%
get_Activities()100%11100%
get_HasMoreActivities()100%11100%
get_IsLoadingMore()100%11100%
get_OnLoadMore()100%11100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Components/History/TimelineSection.razor

#LineLine coverage
 1@using Pomodoro.Web.Models
 2@using Pomodoro.Web.Pages
 3
 4<div class="timeline-section" id="timeline-section">
 5    <div class="section-header">
 1036        <h2>@Constants.Layout.TimelineTitle</h2>
 1037        <span class="activity-count">@(Activities?.Count ?? 0) activities</span>
 8    </div>
 9    <div class="timeline-scroll-container" id="@Constants.UI.TimelineScrollContainerId">
 10        <ActivityTimeline Activities="Activities ?? new()" />
 11
 12        @* Sentinel element for infinite scroll *@
 10313        @if (HasMoreActivities)
 1014        {
 15            <div id="@Constants.UI.InfiniteScrollSentinelId" class="scroll-sentinel">
 1016                @if (IsLoadingMore)
 317                {
 18                    <div class="loading-indicator">
 19                        <div class="pomodoro-loader">
 20                            <div class="tomato-body">
 21                                <div class="tomato-leaf tomato-leaf-left"></div>
 22                                <div class="tomato-leaf tomato-leaf-right"></div>
 23                            </div>
 24                            <div class="tomato-shadow"></div>
 25                        </div>
 26                        <span>Loading more activities...</span>
 27                    </div>
 328                }
 29            </div>
 1030        }
 9331        else if (Activities?.Count > 0)
 4132        {
 33            <div class="end-of-list">
 34                <span>No more activities</span>
 35            </div>
 4136        }
 37    </div>
 38</div>
 39
 40@code {
 41    [Parameter]
 40242    public List<ActivityRecord>? Activities { get; set; }
 43
 44    [Parameter]
 20645    public bool HasMoreActivities { get; set; }
 46
 47    [Parameter]
 11348    public bool IsLoadingMore { get; set; }
 49
 50    [Parameter]
 9551    public EventCallback OnLoadMore { get; set; }
 52}