Skip to content

Commit

Permalink
Change HandleCurrentSelectedChangeAsync to non-async to prevent runti…
Browse files Browse the repository at this point in the history
…me errors (#2776)
  • Loading branch information
vnbaaij authored Oct 7, 2024
1 parent b434574 commit f313282
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 34 deletions.
2 changes: 1 addition & 1 deletion src/Core/Components/TreeView/FluentTreeView.razor
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
class="@Class"
style="@Style"
render-collapsed-nodes="@RenderCollapsedNodes"
@onselectedchange="@HandleCurrentSelectedChangeAsync"
@onselectedchange="@HandleCurrentSelectedChange"
@attributes="AdditionalAttributes">
@ChildContent

Expand Down
6 changes: 3 additions & 3 deletions src/Core/Components/TreeView/FluentTreeView.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ internal async Task ItemExpandedChangeAsync(FluentTreeItem item)
{
await currentTreeItem.OnExpandedAsync(new TreeViewItemExpandedEventArgs(currentTreeItem, item.Expanded));
}

await InvokeAsync(StateHasChanged);
}
}
Expand All @@ -146,15 +146,15 @@ internal void Unregister(FluentTreeItem fluentTreeItem)
_allItems.Remove(fluentTreeItem.Id!);
}

internal async Task HandleCurrentSelectedChangeAsync(TreeChangeEventArgs args)
internal void HandleCurrentSelectedChange(TreeChangeEventArgs args)
{
if (!_allItems.TryGetValue(args.AffectedId!, out FluentTreeItem? treeItem))
{
return;
}

var previouslySelected = CurrentSelected;
await _currentSelectedChangedDebounce.RunAsync(50, () => InvokeAsync(async () =>
_currentSelectedChangedDebounce.Run(50, () => InvokeAsync(async () =>
{
CurrentSelected = treeItem?.Selected == true ? treeItem : null;
if (CurrentSelected != previouslySelected && CurrentSelectedChanged.HasDelegate)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@

<fluent-tree-view blazor:onselectedchange="1" blazor:elementreference="">
<fluent-tree-item aria-label="Item 1" aria-expanded="false" id="xxx" blazor:onselectedchange="2" blazor:onexpandedchange="3" b-toee5o4b4e="" blazor:elementreference="">
<span class="treeitem-text" b-toee5o4b4e="">Item 1</span>
<fluent-tree-item aria-label="Item 1.1" aria-expanded="false" id="xxx" blazor:onselectedchange="6" blazor:onexpandedchange="7" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.1</span>
<fluent-tree-view blazor:onselectedchange="1" blazor:elementreference="xxx">
<fluent-tree-item aria-label="Item 1" aria-expanded="false" id="xxx" blazor:onselectedchange="2" blazor:onexpandedchange="3" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1</span>
<fluent-tree-item aria-label="Item 1.1" aria-expanded="false" id="xxx" blazor:onselectedchange="6" blazor:onexpandedchange="7" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.1</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 1.2" aria-expanded="false" id="xxx" selected="" blazor:onselectedchange="8" blazor:onexpandedchange="9" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.2</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 1.3" aria-expanded="false" id="xxx" blazor:onselectedchange="10" blazor:onexpandedchange="11" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.3</span>
</fluent-tree-item>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 1.2" aria-expanded="false" id="xxx" blazor:onselectedchange="8" blazor:onexpandedchange="9" b-toee5o4b4e="" blazor:elementreference="">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.2</span>
<fluent-tree-item aria-label="Item 2" aria-expanded="false" id="xxx" blazor:onselectedchange="4" blazor:onexpandedchange="5" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2</span>
<fluent-tree-item aria-label="Item 2.1" aria-expanded="false" id="xxx" blazor:onselectedchange="12" blazor:onexpandedchange="13" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.1</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 2.2" aria-expanded="false" id="xxx" blazor:onselectedchange="14" blazor:onexpandedchange="15" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.2</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 2.3" aria-expanded="false" id="xxx" blazor:onselectedchange="16" blazor:onexpandedchange="17" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.3</span>
</fluent-tree-item>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 1.3" aria-expanded="false" id="xxx" blazor:onselectedchange="10" blazor:onexpandedchange="11" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 1.3</span>
</fluent-tree-item>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 2" aria-expanded="false" id="xxx" blazor:onselectedchange="4" blazor:onexpandedchange="5" b-toee5o4b4e="" blazor:elementreference="">
<span class="treeitem-text" b-toee5o4b4e="">Item 2</span>
<fluent-tree-item aria-label="Item 2.1" aria-expanded="false" id="xxx" blazor:onselectedchange="12" blazor:onexpandedchange="13" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.1</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 2.2" aria-expanded="false" id="xxx" selected="" blazor:onselectedchange="14" blazor:onexpandedchange="15" b-toee5o4b4e="" blazor:elementreference="">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.2</span>
</fluent-tree-item>
<fluent-tree-item aria-label="Item 2.3" aria-expanded="false" id="xxx" blazor:onselectedchange="16" blazor:onexpandedchange="17" b-toee5o4b4e="" blazor:elementreference="xxx">
<span class="treeitem-text" b-toee5o4b4e="">Item 2.3</span>
</fluent-tree-item>
</fluent-tree-item>
</fluent-tree-view>
14 changes: 7 additions & 7 deletions tests/Core/TreeView/FluentTreeViewItemsTests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -55,24 +55,24 @@
}

[Fact]
public async Task FluentTreeViewItems_SelectedItem_Change()
public void FluentTreeViewItems_SelectedItem_Change()
{
// Arrange
var selectedItem = Items.ElementAt(0).Items?.ElementAt(1); // Item 1.2
var cut = Render(@<FluentTreeView Items="@Items" @bind-SelectedItem="@selectedItem" />);

// Act
var tree = cut.FindComponent<FluentTreeView>();
await tree.Instance.HandleCurrentSelectedChangeAsync(new TreeChangeEventArgs()
{
AffectedId = "id22",
Selected = true,
});
tree.Instance.HandleCurrentSelectedChange(new TreeChangeEventArgs()
{
AffectedId = "id12",
Selected = true,
});

tree.Render();

// Assert
Assert.Equal("id22", selectedItem?.Id);
Assert.Equal("id12", selectedItem?.Id);
cut.Verify();
}

Expand Down

0 comments on commit f313282

Please sign in to comment.