diff --git a/src/GmRelay.Bot/Migrations/V021__add_avatar_url.sql b/src/GmRelay.Bot/Migrations/V021__add_avatar_url.sql new file mode 100644 index 0000000..7b720bf --- /dev/null +++ b/src/GmRelay.Bot/Migrations/V021__add_avatar_url.sql @@ -0,0 +1,8 @@ +-- ============================================================= +-- V021: Add avatar_url column to players table +-- ============================================================= +-- Scope: Support storing avatar URLs for Discord and other platforms. +-- ============================================================= + +ALTER TABLE players + ADD COLUMN avatar_url VARCHAR(500); diff --git a/src/GmRelay.Web/Components/Pages/Profile.razor b/src/GmRelay.Web/Components/Pages/Profile.razor index cb7e9cd..1371aa6 100644 --- a/src/GmRelay.Web/Components/Pages/Profile.razor +++ b/src/GmRelay.Web/Components/Pages/Profile.razor @@ -3,7 +3,6 @@ @using Microsoft.AspNetCore.Components.Authorization @attribute [Authorize] @inject ISessionStore SessionStore -@inject NavigationManager Navigation Профиль — GM-Relay @@ -54,9 +53,9 @@

Добавить аккаунт

@if (!HasLinkedPlatform("Discord")) { - + } else { @@ -86,6 +85,12 @@ [CascadingParameter] private Task? AuthenticationStateTask { get; set; } + [SupplyParameterFromQuery] + public string? Linked { get; set; } + + [SupplyParameterFromQuery(Name = "link_error")] + public string? LinkError { get; set; } + protected override async Task OnInitializedAsync() { if (AuthenticationStateTask is not null) @@ -99,6 +104,16 @@ } } + if (!string.IsNullOrWhiteSpace(Linked)) + { + successMessage = $"{Linked} аккаунт успешно привязан!"; + } + + if (!string.IsNullOrWhiteSpace(LinkError)) + { + errorMessage = $"Ошибка привязки: {Uri.UnescapeDataString(LinkError)}"; + } + await LoadIdentities(); } @@ -157,9 +172,4 @@ isUnlinking = false; } } - - private void LinkDiscord() - { - Navigation.NavigateTo("/auth/discord", forceLoad: true); - } }