feat(web): профиль с аватаром, панель в углу, настройки сервера, скрытые ID

Правки пользователя:

- в «Профиль → Основной» сверху квадратный аватар слева, справа от него
  настройки имени, «О себе», состояния и эмодзи во всю высоту; смена аватара —
  клик по нему, форматы (JPEG, PNG, WebP, GIF до 8 МБ) — в подсказке;
- убраны дубли: часовой пояс только в «Язык и регион», статус — только в
  мини-профиле панели;
- панель пользователя переехала в нижний левый угол под сайдбар, подсказка о
  выходе из сервера — на её прежнее место; панель ужата под 240 px;
- шестерёнка сервера открывает новый пункт настроек «Сервер» (список серверов,
  общее, участники, роли, опасная зона), а «Профиль → Сервер» оставлен только
  для ника и «Применить ко всем серверам»;
- окно настроек получило статический размер 70% рабочей области со скроллом;
- ID пользователей скрыты везде, кроме раздела «Инстанс» у администратора;
- список друзей свёрнут под кнопкой «Друзья (N)» и раскрывается снизу вверх;
- 249 тестов Vitest (было 239), check/lint/test/build зелёные.
This commit is contained in:
2026-09-20 11:24:09 +03:00
parent bd5f09336b
commit 4c8f888b3e
27 changed files with 1071 additions and 419 deletions
+13 -14
View File
@@ -266,7 +266,8 @@
"more": "Действия: {{name}}",
"menu": "Действия с {{name}}",
"remove": "Удалить из друзей",
"block": "Заблокировать"
"block": "Заблокировать",
"toggle": "Друзья ({{count}})"
},
"lastSeen": {
"label": "Последний вход",
@@ -406,7 +407,6 @@
"logout": "Выйти",
"loggingOut": "Выходим…",
"statusLabel": "Статус: {{status}}",
"copyId": "Скопировать ID",
"status": {
"online": "В сети",
"idle": "Неактивен",
@@ -463,11 +463,14 @@
"security": "Безопасность",
"appearance": "Внешний вид",
"notifications": "Уведомления",
"server": "Сервер",
"voice": "Аудио-видео",
"language": "Язык и регион",
"instance": "Инстанс"
},
"profile": {
"avatar.change": "Сменить аватар",
"avatar.uploading": "Загружаем…",
"title": "Профиль",
"description": "Как вас видят другие участники.",
"displayName": "Отображаемое имя",
@@ -477,11 +480,8 @@
"customStatusPlaceholder": "Например, «Пишу код»",
"customStatusEmoji": "Эмодзи состояния",
"customStatusEmojiPlaceholder": "🚀",
"status": "Статус присутствия",
"locale": "Язык интерфейса",
"saved": "Профиль сохранён.",
"username": "Имя пользователя",
"userId": "ID пользователя",
"badges": "Значки",
"noBadges": "нет",
"tabsLabel": "Вкладки профиля",
@@ -489,18 +489,15 @@
"main": "Основной",
"server": "Сервер"
},
"timezone": "Часовой пояс",
"timezoneHint": "По нему показывается время сообщений.",
"timezoneDefault": "по умолчанию (МСК)",
"avatar": {
"title": "Аватар",
"hint": "Картинку видят все участники.",
"preview": "Предпросмотр аватара",
"change": "Сменить аватар",
"choose": "Выбрать файл аватара",
"upload": "Загрузить аватар",
"remove": "Удалить аватар",
"limit": "До {{limit}}; PNG, JPEG, WebP или GIF.",
"tooLarge": "Файл больше {{limit}} — выберите картинку поменьше."
"formats": "JPEG, PNG, WebP, GIF",
"limit": "{{formats}} до {{limit}}",
"tooLarge": "Файл больше {{limit}} — выберите картинку поменьше.",
"uploading": "Загружаем…"
},
"decorations": {
"title": "Украшения",
@@ -568,13 +565,15 @@
"settingsEmpty": "Настройки не заданы.",
"guilds": "Серверы ({{count}})",
"guildsEmpty": "Серверов нет.",
"userId": "ID пользователя",
"users": "Пользователи ({{count}})",
"usersEmpty": "Пользователей нет.",
"audit": "Журнал аудита (последние {{count}})",
"auditEmpty": "Записей нет.",
"memberCount": "{{count}} участн.",
"adminBadge": "админ",
"mainBadge": "главный"
"mainBadge": "главный",
"usersIdHint": "ID пользователей видны только администратору инстанса."
},
"servers": {
"pickerLabel": "Мои серверы",