< Summary

Information
Class: UIBlazor.Components.Chat.ToolCallBlock
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/Chat/ToolCallBlock.razor
Tag: 14_22728831704
Line coverage
0%
Covered lines: 0
Uncovered lines: 18
Coverable lines: 18
Total lines: 52
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 20
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%110100%
<BuildRenderTree()100%210%
<BuildRenderTree()100%210%
get_Segment()100%210%
get_OnApproval()100%210%
get_DisplayName()0%2040%
get_statusClass()0%4260%

File(s)

/home/runner/work/InvAit/InvAit/UIBlazor/Components/Chat/ToolCallBlock.razor

#LineLine coverage
 1@using UIBlazor.Services.Settings
 2@using UIBlazor.Models
 3@using Shared.Contracts
 4@inject IToolManager ToolManager
 5
 6<div class="tool-call-block" data-tool="@Segment.ToolName">
 7    <div class="tool-call-header @statusClass">
 08        @SharedResource.CallingTool: <strong>@DisplayName</strong>@(Segment.IsClosed ? "" : " ...")
 9    </div>
 10
 011    @if (Segment.Lines.Count > 0)
 12    {
 13        <div class="tool-call-args">
 014            @if (Segment.ToolName == BuiltInToolEnum.ApplyDiff)
 15            {
 16                <DiffView Lines="@Segment.Lines" />
 17            }
 18            else
 19            {
 020                <pre>@string.Join("\n", Segment.Lines[0..])</pre>
 21            }
 22        </div>
 23    }
 24
 025    @if (Segment.IsClosed)
 26    {
 27        <div class="tool-approval-footer @statusClass">
 028            @if (Segment.ApprovalStatus == ToolApprovalStatus.Pending)
 29            {
 030                <div class="tool-approval-label"><i class="rz-icon-notification rz-ml-2"></i>@SharedResource.ApproveRequ
 31                <div class="tool-approval-actions">
 032                    <RadzenButton Icon="check" class="tool-approve-btn rz-m-2" Click="@(async () => await OnApproval.Inv
 033                    <RadzenButton Icon="close" class="tool-reject-btn rz-m-2" Click="@(async () => await OnApproval.Invo
 34                </div>
 35            }
 36        </div>
 37    }
 38</div>
 39
 40@code {
 041    [Parameter] public ContentSegment Segment { get; set; } = null!;
 042    [Parameter] public EventCallback<(string SegmentId, bool Approved)> OnApproval { get; set; }
 43
 044    private string DisplayName => ToolManager.GetTool(Segment.ToolName)?.DisplayName ?? Segment.ToolName;
 45
 046    string statusClass => Segment.ApprovalStatus switch
 047    {
 048        ToolApprovalStatus.Approved => "approved",
 049        ToolApprovalStatus.Rejected => "rejected",
 050        _ => "pending" // класс по умолчанию
 051    };
 52}