@@ -10,10 +10,12 @@ namespace EventLogExpert.Shared.Components;
1010
1111public sealed partial class ValueSelect < T > : BaseComponent < T >
1212{
13+ private readonly string _itemId = $ "select_{ Guid . NewGuid ( ) . ToString ( ) [ ..8 ] } ";
1314 private readonly List < ValueSelectItem < T > > _items = [ ] ;
1415 private readonly HashSet < T > _selectedValues = [ ] ;
1516
1617 private ValueSelectItem < T > ? _highlightedItem ;
18+ private bool _isOpen ;
1719 private bool _preventDefault ;
1820 private ElementReference _selectComponent ;
1921
@@ -38,7 +40,9 @@ public ValueSelectItem<T>? HighlightedItem
3840 public bool IsInput { get ; set ; }
3941
4042 [ Parameter ]
41- public bool IsMultiSelect { get ; set ; } = false ;
43+ public bool IsMultiSelect { get ; set ; }
44+
45+ public string IsOpen => _isOpen . ToString ( ) . ToLower ( ) ;
4246
4347 private string ? DisplayString
4448 {
@@ -86,9 +90,17 @@ public bool AddItem(ValueSelectItem<T> item)
8690
8791 public void ClearSelected ( ) => _selectedValues . Clear ( ) ;
8892
89- public async Task CloseDropDown ( ) => await JSRuntime . InvokeVoidAsync ( "closeDropdown" , _selectComponent ) ;
93+ public async Task CloseDropDown ( )
94+ {
95+ _isOpen = false ;
96+ await JSRuntime . InvokeVoidAsync ( "closeDropdown" , _selectComponent ) ;
97+ }
9098
91- public async Task OpenDropDown ( ) => await JSRuntime . InvokeVoidAsync ( "openDropdown" , _selectComponent ) ;
99+ public async Task OpenDropDown ( )
100+ {
101+ _isOpen = true ;
102+ await JSRuntime . InvokeVoidAsync ( "openDropdown" , _selectComponent ) ;
103+ }
92104
93105 public void RemoveItem ( ValueSelectItem < T > item ) => _items . Remove ( item ) ;
94106
0 commit comments