UI/MenuSystem/Pages/SettingsPage.razor
@using Sandbox.UI 
@using Sandbox
@using Sandbox.UI.Navigation

@inherits Panel
@namespace Opium.UI

<root class="body column">
    <div class="column scroll">
        @foreach ( var grouping in TypeLibrary.GetPropertyDescriptions( GameSettingsSystem.Current ).GroupBy( x => x.Group )  )
        {
            <div class="group">@grouping.Key</div>

            @foreach ( var property in grouping )
            {
                <SettingsPageSetting @[email protected] @Description=@property />
            }
            
            <div class="divider" />
        }
    </div>

    <div class="with-small-gap column">
        <div class="button" onclick=@(() => Game.Overlay.ShowBinds())>
            EDIT INPUT BINDINGS
        </div>
    </div>

    <div class="with-small-gap column">
        <div class="button" onclick=@Save>
            SAVE
        </div>
    </div>

    <div class="with-small-gap column">
        <a class="button" href="/">
            RETURN
        </a>
    </div>
</root>

@code
{
    void Save()
    {
        GameSettingsSystem.Save();
        this.Navigate("/");
    }
}