ui/chatbox/ChatboxEntry.razor
@using System;
@using Sandbox;
@using Sandbox.UI;
@using Facepunch.BombRoyale;
@using System.Threading.Tasks;
@namespace Facepunch.BombRoyale
@inherits Panel
<root class=@(HasFaded ? "faded" : string.Empty)>
<label @ref="NameLabel" class="name">@Name</label>
<label class="message">@Message</label>
</root>
@code
{
public string Name { get; init; }
public string Message { get; init; }
public Color? Color { get; init; }
private Label NameLabel { get; set; }
private bool HasFaded { get; set; }
protected override async void OnParametersSet()
{
try
{
await Task.DelaySeconds( 10f );
HasFaded = true;
}
catch ( TaskCanceledException )
{
}
catch ( Exception e )
{
Log.Error( e.Message );
}
}
protected override void OnAfterTreeRender( bool firstTime )
{
if ( Color.HasValue )
NameLabel.Style.FontColor = Color;
base.OnAfterTreeRender( firstTime );
}
protected override int BuildHash()
{
return HashCode.Combine( Name, Message, HasFaded );
}
}