LANCommander/LANCommander.Launcher/UI/Library/Components/LibraryListItem.razor
2024-11-09 17:15:04 -06:00

37 lines
1.1 KiB
Text

@using LANCommander.Launcher.Models
<Dropdown Trigger="new Trigger[] { Trigger.ContextMenu }" Style="display: block; width: 100%;">
<Overlay>
<Menu>
<LibraryItemContextMenu Model="Model" />
</Menu>
</Overlay>
<ChildContent>
<ListItem OnClick="OnClick" Class="@GetItemClasses()">
<div class="library-list-icon">
<MediaImage Id="@Model.IconId" />
</div>
<span>@Model.Name</span>
</ListItem>
</ChildContent>
</Dropdown>
@code {
[Parameter] public Models.ListItem Model { get; set; }
[Parameter] public EventCallback OnClick { get; set; }
[Parameter] public Guid? SelectedItem { get; set; }
[Parameter] public EventCallback<Guid?> SelectedItemChanged { get; set; }
string GetItemClasses()
{
HashSet<string> classes = new HashSet<string>();
if (Model.State == ListItemState.Installed)
classes.Add("installed");
if (SelectedItem == Model.Key)
classes.Add("selected");
return String.Join(" ", classes);
}
}