@page "/profile"
@attribute [Authorize]
@inject HttpClient Http
@inject IDialogService DialogService
@using PlaylistShared.Pwa.Components.Profile
@using PlaylistShared.Shared.Profile
Профиль
Профиль
@*
Данные аккаунта
Сменить почту
*@
Яндекс.Музыка
@_statusText
@(_hasToken ? "Переподключить" : "Установить")
@code {
private string _email = "user@example.com"; // Загрузите из стейта или API
private string _statusText = "Загрузка...";
private bool _hasToken;
protected override async Task OnInitializedAsync() => await LoadStatus();
private async Task LoadStatus()
{
try
{
var response = await Http.GetFromJsonAsync>("/api/yandextoken/status");
if (response?.Success == true)
{
_hasToken = response.Data.HasToken;
_statusText = _hasToken ? "Аккаунт подключен" : "Аккаунт не подключен";
}
}
catch { _statusText = "Ошибка загрузки статуса"; }
}
private async Task OpenTokenDialog()
{
var options = new DialogOptions { CloseOnEscapeKey = true, MaxWidth = MaxWidth.Small, FullWidth = true };
var dialog = await DialogService.ShowAsync("", options);
var result = await dialog.Result;
if (!result.Canceled) await LoadStatus();
}
}