@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(); } }