@inject IUserSessionService Session
@inject SharepointToolbox.Web.Infrastructure.Persistence.ProfileRepository ProfileRepo
@inject TranslationSource T
@implements IDisposable
@using SharepointToolbox.Web.Core.Models
@using SharepointToolbox.Web.Services.Session
@if (_open)
{
}
@code {
private bool _open;
private List _profiles = new();
protected override async Task OnInitializedAsync()
{
Session.ProfileChanged += OnProfileChanged;
await LoadProfilesAsync();
}
private void OnProfileChanged() => InvokeAsync(StateHasChanged);
private async Task LoadProfilesAsync()
=> _profiles = (await ProfileRepo.LoadAsync()).ToList();
private async Task ToggleAsync()
{
_open = !_open;
// Refresh the list when opening so newly created/edited profiles show up without a reload.
if (_open) await LoadProfilesAsync();
}
private void Close() => _open = false;
private void Select(TenantProfile p)
{
_open = false;
Session.SetProfile(p);
}
public void Dispose() => Session.ProfileChanged -= OnProfileChanged;
}