mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
feat: add multi-channel subscription blocking UI and admin management
- Channel subscription blocking screen with per-channel status display - Safe URL handling with protocol validation (no open redirect) - Race-condition-safe subscription check with useRef guard - Admin channel management page with create, toggle, delete - Error handlers on all admin mutations with haptic feedback - Proper type guard for channel subscription error detection - Accessibility: aria-labels on icon-only buttons - Localization: en, ru, zh, fa translations
This commit is contained in:
@@ -883,7 +883,8 @@
|
||||
"updates": "Обновления",
|
||||
"pinnedMessages": "Закреплённые",
|
||||
"partners": "Партнёры",
|
||||
"withdrawals": "Выводы"
|
||||
"withdrawals": "Выводы",
|
||||
"channelSubscriptions": "Обязательные каналы"
|
||||
},
|
||||
"panel": {
|
||||
"title": "Панель администратора",
|
||||
@@ -910,7 +911,8 @@
|
||||
"updatesDesc": "Версии бота и кабинета",
|
||||
"pinnedMessagesDesc": "Управление закреплёнными сообщениями",
|
||||
"partnersDesc": "Управление заявками партнёров и комиссиями",
|
||||
"withdrawalsDesc": "Проверка и обработка заявок на вывод"
|
||||
"withdrawalsDesc": "Проверка и обработка заявок на вывод",
|
||||
"channelSubscriptionsDesc": "Управление обязательными подписками на каналы"
|
||||
},
|
||||
"trafficUsage": {
|
||||
"title": "Расход трафика",
|
||||
@@ -1323,6 +1325,28 @@
|
||||
"editMessage": "Редактировать",
|
||||
"cantDeleteActive": "Нельзя удалить активное сообщение"
|
||||
},
|
||||
"channelSubscriptions": {
|
||||
"title": "Обязательные каналы",
|
||||
"subtitle": "Пользователи должны подписаться на эти каналы",
|
||||
"addChannel": "Добавить канал",
|
||||
"empty": "Каналы не настроены",
|
||||
"enabled": "Активен",
|
||||
"disabled": "Отключён",
|
||||
"enable": "Включить",
|
||||
"disable": "Отключить",
|
||||
"delete": "Удалить",
|
||||
"deleteConfirm": "Удалить этот канал?",
|
||||
"sortOrder": "Порядок",
|
||||
"form": {
|
||||
"title": "Название",
|
||||
"channelId": "ID канала",
|
||||
"channelIdHint": "@username или -100XXXXXXXXXX",
|
||||
"channelLink": "Ссылка на канал",
|
||||
"channelLinkHint": "https://t.me/channel",
|
||||
"submit": "Добавить",
|
||||
"cancel": "Отмена"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Настройки системы",
|
||||
"allCategories": "Все категории",
|
||||
@@ -3699,7 +3723,9 @@
|
||||
"waitSeconds": "Подождите {{seconds}} сек.",
|
||||
"hint": "После подписки нажмите кнопку проверки",
|
||||
"notSubscribed": "Вы ещё не подписались на канал",
|
||||
"checkError": "Ошибка проверки. Попробуйте позже."
|
||||
"checkError": "Ошибка проверки. Попробуйте позже.",
|
||||
"subscribed": "Подписан",
|
||||
"channelsRequired": "Подпишитесь на все каналы ниже для продолжения"
|
||||
},
|
||||
"blacklisted": {
|
||||
"title": "Доступ запрещён",
|
||||
|
||||
Reference in New Issue
Block a user