UI/Tutorials/TutorialHint.razor
@inherits PanelComponent
@namespace Opium

<root>
    <div class="overlay @OverlayClass" />

    @if ( string.IsNullOrEmpty( Message ) ) 
    {
        return;
    }

    @if ( TimeUntilRemoval )
    {
        return;
    }

    <div class="entry">
        @if ( !string.IsNullOrEmpty( InputAction ) )
        {
            <div class="input">
                <label>PRESS</label>
                <label>@Input.GetButtonOrigin( InputAction ).ToUpperInvariant()</label>
            </div>
        }
        <label class="small">@Message</label>

    </div>
</root>

@code
{
    public string InputAction { get; set; } = null;
    public string Message { get; set; } = null;
    public bool Freeze { get; set; } = false;
    public TimeUntil TimeUntilRemoval { get; set; }

    public string OverlayClass => Freeze ? "active" : "";

    protected override void OnUpdate()
    {
        SetClass( "freeze", Freeze );

        if ( Freeze && Input.Pressed( InputAction ) )
        {
            Dismiss();
        }
    }

    protected override int BuildHash()
    {
        return HashCode.Combine( RealTime.Now );
    }
}