< Summary

Information
Class: UIBlazor.Components.ToolViews.DiffViewSection
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/ToolViews/DiffViewSection.razor
Tag: 71_26091983037
Line coverage
0%
Covered lines: 0
Uncovered lines: 21
Coverable lines: 21
Total lines: 70
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 22
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%342180%
get_Model()100%210%
Toggle()100%210%
.ctor()100%210%
ShouldRender()0%2040%
OnParametersSet()100%210%
Dispose()100%210%

File(s)

/home/runner/work/InvAit/InvAit/UIBlazor/Components/ToolViews/DiffViewSection.razor

#LineLine coverage
 1@using DiffPlex.DiffBuilder.Model
 2@implements IDisposable
 3
 4<div class="diff-pane" style="overflow: auto;">
 5    <table class="diff">
 06        @if (Model?.OldText.Lines is not null)
 7        {
 08            @for (var i = 0; i < Model.OldText.Lines.Count; i++)
 9            {
 010                var diffLine = Model.OldText.Lines[i];
 011                var diffLineNew = Model.NewText.Lines[i];
 12                <tr>
 013                    @if (!_isOldHidden)
 14                    {
 15                        <td class="line-number @diffLine.Type.ToString().ToLower()" @onclick="Toggle">
 016                            @(diffLine.Position?.ToString() ?? " ")
 17                        </td>
 18                        <td class="line @diffLine.Type.ToString().ToLower()-line">
 19                            <span class="line-text">
 20                                <DiffViewLine Model="diffLine" />
 21                            </span>
 22                        </td>
 23                    }
 24                    <td class="line-number @diffLineNew.Type.ToString().ToLower()" @onclick="Toggle">
 025                        @(diffLineNew.Position?.ToString() ?? " ")
 26                    </td>
 27                    <td class="line @diffLineNew.Type.ToString().ToLower()-line" style="width: @(_isOldHidden ? "100%" :
 28                        <span class="line-text">
 29                            <DiffViewLine Model="diffLineNew" />
 30                        </span>
 31                    </td>
 32                </tr>
 33            }
 34        }
 35    </table>
 36</div>
 37
 38@code {
 039    [Parameter] public SideBySideDiffModel Model { get; set; } = null!;
 40
 41    private bool _isOldHidden;
 42    private void Toggle()
 43    {
 044        _isOldHidden = !_isOldHidden;
 045        _changed = true;
 046        InvokeAsync(StateHasChanged);
 047    }
 48
 49    private bool _changed;
 050    private Throttler _throttler = new(500); // Интервал рендеринга от 500мс
 51
 52    protected override bool ShouldRender()
 53    {
 054        if (_changed && _throttler.ShouldRender(() => InvokeAsync(StateHasChanged)))
 55        {
 056            _changed = false;
 057            return true;
 58        }
 59
 060        return false;
 61    }
 62
 63    protected override void OnParametersSet()
 64    {
 065        base.OnParametersSet();
 066        _changed = true;
 067    }
 68
 069    public void Dispose() => _throttler.Dispose();
 70}