LANCommander/LANCommander.Launcher/UI/Library/Components/LibraryListItem.razor

37 lines
1.1 KiB
Text

@using LANCommander.Launcher.Models
<Dropdown Trigger="new Trigger[] { Trigger.ContextMenu }" Style="display: block; width: 100%;">
<Overlay>
<Menu Class="library-context" Selectable="false">
<LibraryItemContextMenu Model="Model" ShowPrimaryActions="true" />
</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);
}
}