diff --git a/docs/FUNCTIONAL.md b/docs/FUNCTIONAL.md index 38260fe..11e580e 100644 --- a/docs/FUNCTIONAL.md +++ b/docs/FUNCTIONAL.md @@ -213,6 +213,9 @@ block **overrides but does not delete** an existing friendship (so you may block they keep seeing you as one); active games are never interrupted — you can finish them, with the blocked opponent's chat composer hidden (only the log remains). Blocking from a game card mirrors the block in **Settings → Friends**; **unblock** and **unfriend** live there only. +On Settings → Friends each friend is a one-line row whose right-hand kebab (⋮) slides open +**block 🚫** and **remove ✖️** icon actions, and each action is gated by a confirmation +that names the friend (*Block this player?* / *Remove from friends?*). Blocking an **auto-match opponent who is secretly a robot** behaves the same in that game (struck name, hidden composer) and lists the blocked opponent under the name you saw, but is recorded only against that game — the disguise holds, the shared robot is never globally diff --git a/docs/FUNCTIONAL_ru.md b/docs/FUNCTIONAL_ru.md index fa1dcd6..3fc7c05 100644 --- a/docs/FUNCTIONAL_ru.md +++ b/docs/FUNCTIONAL_ru.md @@ -218,6 +218,9 @@ _Вход сейчас только через провайдера, поэто заблокированного соперника «подвал» чата скрыт (остаётся только лог). Блокировка с карточки в партии повторяет блокировку в **Настройках → Друзья**; **разблокировка** и **удаление из друзей** есть только там. +В **Настройках → Друзья** каждый друг — однострочник, чей правый кебаб (⋮) выдвигает +иконки-действия **заблокировать 🚫** и **удалить ✖️**, и каждое действие подтверждается +диалогом с именем друга (*Заблокировать?* / *Удалить из друзей?*). Блокировка **авто-матч соперника, который втайне робот**, в этой партии ведёт себя так же (зачёркнутое имя, скрытый «подвал») и в списке заблокированных показывается под тем именем, которое ты видел, но записывается только для этой партии — маскировка сохраняется, общий diff --git a/ui/src/lib/i18n/en.ts b/ui/src/lib/i18n/en.ts index db0cad9..6f7cb9e 100644 --- a/ui/src/lib/i18n/en.ts +++ b/ui/src/lib/i18n/en.ts @@ -227,6 +227,9 @@ export const en = { 'friends.decline': 'Decline', 'friends.unfriend': 'Remove', 'friends.block': 'Block', + 'friends.actions': 'Actions', + 'friends.blockConfirm': 'Block this player?', + 'friends.unfriendConfirm': 'Remove from friends?', 'friends.add': 'Add a friend', 'friends.addFromGame': 'Add to friends', 'friends.blockFromGame': 'Block player', diff --git a/ui/src/lib/i18n/ru.ts b/ui/src/lib/i18n/ru.ts index 4321efd..bd5b5a6 100644 --- a/ui/src/lib/i18n/ru.ts +++ b/ui/src/lib/i18n/ru.ts @@ -228,6 +228,9 @@ export const ru: Record = { 'friends.decline': 'Отклонить', 'friends.unfriend': 'Удалить', 'friends.block': 'Заблокировать', + 'friends.actions': 'Действия', + 'friends.blockConfirm': 'Заблокировать?', + 'friends.unfriendConfirm': 'Удалить из друзей?', 'friends.add': 'Добавить друга', 'friends.addFromGame': 'В друзья', 'friends.blockFromGame': 'Заблокировать', diff --git a/ui/src/screens/Friends.svelte b/ui/src/screens/Friends.svelte index 4471ef4..831f3d2 100644 --- a/ui/src/screens/Friends.svelte +++ b/ui/src/screens/Friends.svelte @@ -1,5 +1,6 @@