@namespace MenuProject.Modals
@inherits MenuProject.Modals.BaseModal
@using MenuProject.MenuUI.Components
@using Sandbox;
@using Sandbox.UI;
@using Menu;
@using System;
@if (Org is null) return;
@code
{
internal static OrganizationModal LastOpened;
public Package.Organization Org { get; set; }
int packageCount = 0;
string type = "game";
TextEntry SearchEntry = default;
List SelectedTags = new();
void OnPackageSelected(Package package)
{
package.OpenModal();
}
protected override void OnParametersSet()
{
LastOpened = this;
}
void SetType(string newType)
{
type = newType;
}
void ToggleTag ( string tag )
{
if ( SelectedTags.Contains( tag ) )
{
SelectedTags.Remove( tag );
}
else
{
SelectedTags.Add( tag );
}
}
string CurrentQuery
{
get
{
if ( Org == null )
return "";
var query = $"org:{Org.Ident} type:{type} " + ( SearchEntry?.Text ?? "" );
if ( SelectedTags.Count == 0 )
return query;
foreach ( var tag in SelectedTags )
{
query += $" +{tag}";
}
return query;
}
}
protected override int BuildHash ()
{
return HashCode.Combine( CurrentQuery, packageCount, SearchEntry?.Text );
}
}