@inject IJsInterop JsInterop
@code {
private System.Timers.Timer _collapseTimer;
private string _showClass;
private bool _isExpanded;
[Parameter]
public string ButtonClass { get; set; }
[Parameter]
public RenderFragment ButtonContent { get; set; }
[Parameter]
public string DropDownClass { get; set; }
[Parameter]
public string DropDownMenuClass { get; set; }
[Parameter]
public RenderFragment ChildListItems { get; set; }
private void ToggleShown()
{
_isExpanded = !_isExpanded;
_showClass = _isExpanded ? "show" : "";
}
private void MouseEnter()
{
_collapseTimer?.Dispose();
}
private void MouseLeft()
{
_collapseTimer?.Dispose();
_collapseTimer = new System.Timers.Timer(1500);
_collapseTimer.Elapsed += (sender, args) =>
{
_isExpanded = false;
_showClass = "";
InvokeAsync(StateHasChanged);
};
_collapseTimer.Start();
}
}