+
- @if (masterProfile is not null)
+
+
+ @if (!string.IsNullOrWhiteSpace(errorMessage))
{
-
+
+ @errorMessage
+
+ }
+
+ @if (!string.IsNullOrWhiteSpace(successMessage))
+ {
+
+ @successMessage
+
+ }
+
+ @if (masterProfile is null)
+ {
+
+ }
+ else
+ {
+
@@ -72,20 +104,28 @@
}
- @if (identities is null)
- {
-
Загрузка...
- }
- else if (identities.Count == 0)
- {
-
-
Связанные аккаунты не найдены.
+
+
- }
- else
- {
-
-
Связанные аккаунты
+
+ @if (identities is null)
+ {
+
+
+ }
+ else if (identities.Count == 0)
+ {
+
+
Аккаунты не найдены
+
Привяжите Telegram или Discord, чтобы управлять профилем.
+
+ }
+ else
+ {
@foreach (var id in identities)
{
@@ -96,7 +136,7 @@
@if (id.Platform != currentPlatform || id.ExternalUserId != currentExternalUserId)
{
-
- }
+ }
+
+
+
+
-
-
Добавить аккаунт
@if (!HasLinkedPlatform("Discord"))
{
-
+
+
Привязать Discord
}
else
{
-
Discord уже привязан.
+
Discord уже привязан.
}
@if (currentPlatform == "Discord" && !HasLinkedPlatform("Telegram"))
@@ -138,16 +187,6 @@
}
}
-
- @if (!string.IsNullOrWhiteSpace(errorMessage))
- {
-
@errorMessage
- }
-
- @if (!string.IsNullOrWhiteSpace(successMessage))
- {
-
@successMessage
- }
@code {
diff --git a/src/GmRelay.Web/wwwroot/app.css b/src/GmRelay.Web/wwwroot/app.css
index d571421..a769634 100644
--- a/src/GmRelay.Web/wwwroot/app.css
+++ b/src/GmRelay.Web/wwwroot/app.css
@@ -1449,6 +1449,62 @@ body.telegram-mini-app .session-card-mobile {
color: var(--accent-secondary);
}
+/* === Identity list (profile page) === */
+.identity-list {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.identity-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0.75rem 1rem;
+ background: var(--bg-surface);
+ border: 1px solid var(--border-color);
+ border-radius: var(--radius-sm);
+ gap: 1rem;
+ transition: background var(--transition-fast);
+}
+
+.identity-item:hover {
+ background: rgba(255, 255, 255, 0.05);
+}
+
+.identity-info {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ flex-wrap: wrap;
+ flex: 1;
+}
+
+.identity-platform {
+ font-size: 0.75rem;
+ font-weight: 700;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ color: var(--text-muted);
+ background: var(--bg-primary);
+ padding: 0.25rem 0.5rem;
+ border-radius: var(--radius-sm);
+ border: 1px solid var(--border-color);
+}
+
+.identity-name {
+ font-weight: 600;
+ color: var(--text-primary);
+ font-family: 'Jura', sans-serif;
+}
+
+.telegram-widget-wrapper {
+ margin-top: 0.5rem;
+}
+
/* === Sidebar refinements (MainLayout & NavMenu) === */
.page {
display: flex;