diff --git a/Iceshrimp.Frontend/Components/Dropdown.razor b/Iceshrimp.Frontend/Components/Dropdown.razor index e5cc62c2..ffb50bba 100644 --- a/Iceshrimp.Frontend/Components/Dropdown.razor +++ b/Iceshrimp.Frontend/Components/Dropdown.razor @@ -15,12 +15,26 @@ } @code { + private TBind _value; [Parameter] [EditorRequired] public required IEnumerable> Elements { get; set; } - [Parameter] [EditorRequired] public required TBind Value { get; set; } - [Parameter] public EventCallback ValueChanged { get; set; } - private DropdownElement? CurrentSelection { get; set; } - private RenderFragment? CurrentIcon { get; set; } - private bool Visible { get; set; } = false; + + [Parameter] + [EditorRequired] + public required TBind Value + { + get => _value; + set + { + _value = value; + CurrentSelection = Elements.First(element => element.Selection != null && element.Selection.Equals(value)); + CurrentIcon = CurrentSelection.Icon; + } + } + + [Parameter] public EventCallback ValueChanged { get; set; } + private DropdownElement? CurrentSelection { get; set; } + private RenderFragment? CurrentIcon { get; set; } + private bool Visible { get; set; } = false; private void UpdateSelected(DropdownElement element) {