< Summary

Information
Class: UIBlazor.Components.RecentSessionsPicker
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/RecentSessionsPicker.razor
Tag: 14_22728831704
Line coverage
0%
Covered lines: 0
Uncovered lines: 21
Coverable lines: 21
Total lines: 63
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 8
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
BuildRenderTree(...)0%2040%
get_ChatService()100%210%
get_ShowTitle()100%210%
OnInitializedAsync()100%210%
LoadSession()100%210%
DeleteSessionAsync()0%620%

File(s)

/home/runner/work/InvAit/InvAit/UIBlazor/Components/RecentSessionsPicker.razor

#LineLine coverage
 1@using UIBlazor.Models
 2@inject DialogService DialogService
 3
 04@if (_sessions != null && _sessions.Any())
 5{
 6    <RadzenStack AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Center" Gap="1rem" Style="max-width: 600p
 07        @if (ShowTitle)
 8        {
 09            <RadzenText TextStyle="TextStyle.H6" class="rz-text-secondary-color">@SharedResource.SessionsTitle</RadzenTe
 10        }
 11        <RadzenDataList Data="@_sessions" TItem="SessionSummary" Count="@_sessions.Count" WrapItems="true">
 12            <Template Context="session">
 013                <RadzenCard class="rz-p-2 rz-w-100" Style="cursor: pointer;" @onclick="() => LoadSession(session.Id)">
 14                    <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" JustifyContent="Jus
 15                        <RadzenIcon Icon="chat_bubble_outline" class="rz-text-tertiary-color" />
 16                        <RadzenStack Orientation="Orientation.Vertical" Gap="0.2rem" Style="flex: 1; overflow: hidden;">
 017                            <RadzenText TextStyle="TextStyle.Caption" class="rz-color-info-light" Style="text-align: end
 018                            <RadzenText TextStyle="TextStyle.Body2" Style="white-space: nowrap; overflow: hidden; text-o
 19                        </RadzenStack>
 020                        <RadzenButton Icon="delete" ButtonStyle="ButtonStyle.Danger" Variant="Variant.Text" Size="Button
 21                    </RadzenStack>
 22                </RadzenCard>
 23            </Template>
 24        </RadzenDataList>
 25    </RadzenStack>
 26}
 27else
 28{
 29    <RadzenStack class="rz-chat-empty" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Center" Gap="1rem">
 30        <RadzenIcon Icon="chat_bubble_outline" class="rz-text-secondary-color" />
 031        <RadzenText TextStyle="TextStyle.Body2" class="rz-mt-2 rz-text-tertiary-color">@SharedResource.EmptyMessage</Rad
 32    </RadzenStack>
 33}
 34
 35@code {
 36    private List<SessionSummary>? _sessions;
 37
 038    [Inject] ChatService ChatService { get; set; } = null!;
 39
 040    [Parameter] public bool ShowTitle { get; set; } = false;
 41
 42    protected override async Task OnInitializedAsync()
 43    {
 044        _sessions = await ChatService.GetRecentSessionsAsync(5);
 045    }
 46
 47    private async Task LoadSession(string id)
 48    {
 049        await ChatService.LoadSessionAsync(id);
 050        DialogService.Close();
 051    }
 52
 53    private async Task DeleteSessionAsync(string id, MouseEventArgs args)
 54    {
 055        var result = await DialogService.Confirm(SharedResource.ConfirmQuestion, SharedResource.DeleteSession);
 056        if (result == true)
 57        {
 058            await ChatService.DeleteSessionAsync(id);
 059            _sessions = await ChatService.GetRecentSessionsAsync(5);
 060            await InvokeAsync(StateHasChanged);
 61        }
 062    }
 63}