Добавьте файлы проекта.

This commit is contained in:
FrigaT
2026-04-13 14:16:44 +03:00
parent b2b5a3945a
commit 37c997dbe0
120 changed files with 5364 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
@page "/profile"
@using Microsoft.AspNetCore.Authorization
@using PlaylistShared.Shared.DTO
@attribute [Authorize]
@inject HttpClient Http
@inject ISnackbar Snackbar
<MudContainer MaxWidth="MaxWidth.Small" Class="mt-8">
<MudCard>
<MudCardHeader>
<CardHeaderContent>
<MudText Typo="Typo.h5">Личный кабинет</MudText>
</CardHeaderContent>
</MudCardHeader>
<MudCardContent>
<MudText Typo="Typo.body2" Class="mb-4">Здесь вы можете указать токен доступа к Яндекс.Музыке.</MudText>
<MudTextField @bind-Value="_token" Label="Токен Яндекс.Музыки" Variant="Variant.Outlined" FullWidth="true" />
<MudButton Variant="Variant.Filled" Color="Color.Primary" OnClick="SaveToken" Class="mt-4" FullWidth="true">Сохранить токен</MudButton>
<MudText Class="mt-4" Typo="Typo.body2">Статус: @_statusText</MudText>
</MudCardContent>
</MudCard>
</MudContainer>
@code {
private string _token = "";
private string _statusText = "Загрузка...";
protected override async Task OnInitializedAsync()
{
await LoadStatus();
}
private async Task LoadStatus()
{
try
{
var response = await Http.GetFromJsonAsync<ApiResponse<YandexTokenStatus>>("/api/yandextoken/status");
if (response?.Success == true)
{
_statusText = response.Data.HasToken
? $"Токен установлен{(response.Data.IsValid ? "" : " (просрочен)")}"
: "Токен не установлен";
}
}
catch { _statusText = "Не удалось загрузить статус"; }
}
private async Task SaveToken()
{
if (string.IsNullOrWhiteSpace(_token))
{
Snackbar.Add("Введите токен", Severity.Warning);
return;
}
var request = new SetYandexTokenRequest { Token = _token };
var response = await Http.PostAsJsonAsync("/api/yandextoken/set", request);
if (response.IsSuccessStatusCode)
{
Snackbar.Add("Токен сохранён", Severity.Success);
await LoadStatus();
_token = "";
}
else
{
Snackbar.Add("Ошибка сохранения токена", Severity.Error);
}
}
public class YandexTokenStatus { public bool HasToken { get; set; } public bool IsValid { get; set; } }
public class SetYandexTokenRequest { public string Token { get; set; } }
}