@inject AppState state
@inject NavigationManager nav
@implements IDisposable
@code {
protected override void OnInitialized()
{
base.OnInitialized();
state.OnChange += StateHasChanged;
}
///
/// The client ID for Jobs, Jobs, Jobs at No Agenda Social
///
// TODO: move to config
private readonly string _clientId = "k_06zlMy0N451meL4AqlwMQzs5PYr6g3d2Q_dCT-OjU";
///
/// The authorization URL to which the user should be directed
///
private string AuthUrl
{
get
{
var client = $"client_id={_clientId}";
var scope = "scope=read:accounts";
var redirect = $"redirect_uri=https://{new Uri(nav.Uri).Authority}/citizen/authorized";
var respType = "response_type=code";
// TODO: move NAS base URL to config
return $"https://noagendasocial.com/oauth/authorize?{client}&{scope}&{redirect}&{respType}";
}
}
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
public void Dispose()
{
state.OnChange -= StateHasChanged;
}
}