UI/Notifications/NotificationEntry.razor
@using Sandbox;
@using Sandbox.UI;
@inherits Panel
@namespace HC3

<root class="window-container">
	<row>
		@if (!string.IsNullOrEmpty(Icon))
		{
			<i>@Icon</i>
		}
		<label>@Message</label>
	</row>
	<div class="progress">
		<div class="fill" style="width: @(Progress * 100)%;"></div>
	</div>
</root>

@code
{
	public string Icon { get; set; } = string.Empty;
	public string Message { get; set; } = string.Empty;
	public float Duration { get; set; } = 5f;

	private float Progress => 1f - (realTimeSince / Duration);
	private RealTimeSince realTimeSince = 0f;

	public override void Tick()
	{
		base.Tick();

		if (realTimeSince >= Duration)
		{
			Delete();
			return;
		}
	}

	protected override int BuildHash() => System.HashCode.Combine(Progress);
}