Client has been renamed to launcher, and thus namespaces and artifact names had to change. The server project has also had some artifacts renamed in order to create a more clear separation of builds. This will break auto-updates before v0.9.0.
56 lines
1.2 KiB
Text
56 lines
1.2 KiB
Text
@implements IDisposable
|
|
@using LANCommander.Launcher.Data.Models
|
|
@inject MediaService MediaService
|
|
@inject MessageBusService MessageBusService
|
|
|
|
<img @ref="Ref" @key="Id" src="@MediaUrl" class="@Class @HiddenClass" @onerror="Hide" />
|
|
|
|
@code {
|
|
[Parameter] public Guid Id { get; set; }
|
|
[Parameter] public string Class { get; set; }
|
|
|
|
string MediaUrl { get; set; }
|
|
string HiddenClass { get; set; }
|
|
|
|
ElementReference Ref;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
MessageBusService.OnMediaChanged += OnMediaChanged;
|
|
}
|
|
|
|
protected override async Task OnParametersSetAsync()
|
|
{
|
|
try {
|
|
var media = await MediaService.Get(Id);
|
|
|
|
UpdateMediaUrl(media);
|
|
}
|
|
catch { }
|
|
}
|
|
|
|
async Task OnMediaChanged(Media media)
|
|
{
|
|
if (media.Id == Id)
|
|
{
|
|
UpdateMediaUrl(media);
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
}
|
|
|
|
async Task Hide()
|
|
{
|
|
HiddenClass = "hidden";
|
|
}
|
|
|
|
void UpdateMediaUrl(Media media)
|
|
{
|
|
MediaUrl = $"media://{media?.FileId}-{media?.Crc32}?mime={media?.MimeType}";
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
MessageBusService.OnMediaChanged -= OnMediaChanged;
|
|
}
|
|
}
|