UI/Inspector/StaffInspector.razor
@using Sandbox;
@namespace HC3.UI
@inherits PinnableWindow<StaffInspector>

@if (!Staff.IsValid())
{
	Close();
	return;
}

<root>
    <ActionDisplay Agent=@Staff />

    @if ( Staff.Stats.Count > 0 )
    {
        <div style="margin-top: 4px; margin-bottom: 4px;">
            @foreach ( var (k, v) in Staff.Stats )
            {
                <label class="subtitle">@k.ToString().ToTitleCase(): @v</label>
            }
        </div>
    }

	<div class="footer">
		<div class="button @(isFollowing ? "selected" : "")" onclick=@(() => CameraPanning.Instance.ToggleFollow( Staff.GameObject )) tooltip="Follow"><i>filter_center_focus</i></div>
	</div>
</root>

@code
{
	public Staff Staff { get; set; }

	public override string Title => Staff?.FullName;
	public override string Icon => "user_gray";
	public override object Key => Staff;

	bool isFollowing => CameraPanning.Instance.FollowTarget == Staff.GameObject;
	
	private void FrameTo()
	{
		CameraPanning.Instance.FrameOn( Staff.WorldPosition );
	}

    protected override int BuildHash() => System.HashCode.Combine( Time.Now );

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

		CameraPanning.Instance.StopFollowing( Staff.GameObject );
	}
}