-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Описание проблемы
На странице чатов (/chats) обнаружено три UX-проблемы:
1. Кнопка "Взять диалог" не работает 🔴 Critical
Ожидаемое поведение: При клике на кнопку "Взять диалог" чат переходит в режим менеджера.
Фактическое поведение: Ничего не происходит, кнопка остаётся без изменений.
Причина: Контроллер Tenants::Chats::ManagerController#takeover всегда рендерит JSON ответ (строки 69-77), игнорируя turbo_stream запросы:
# app/controllers/tenants/chats/manager_controller.rb:60-78
def takeover
result = Manager::TakeoverService.call(...)
if result.success?
render json: { ... } # <-- всегда JSON!
else
render json: { ... }
end
endПри этом turbo_stream шаблон app/views/tenants/chats/takeover.turbo_stream.slim существует, но не используется!
Решение: Добавить respond_to блок:
def takeover
result = Manager::TakeoverService.call(...)
respond_to do |format|
format.turbo_stream if result.success?
format.json do
if result.success?
render json: { success: true, chat: chat_json(result.chat), ... }
else
render json: { success: false, error: result.error }, status: :unprocessable_entity
end
end
end
end2. Курсор над кнопкой не pointer 🟡 Minor
Ожидаемое поведение: При наведении на кнопку "Взять диалог" курсор должен меняться на pointer.
Фактическое поведение: Курсор остаётся стандартным.
Файл: app/views/tenants/chats/_chat_controls.html.slim:8
Решение: Добавить класс cursor-pointer к кнопке.
3. URL не обновляется при клике на чат 🟡 Medium
Ожидаемое поведение: При клике на чат в списке URL должен меняться на /chats/123.
Фактическое поведение: URL остаётся /chats или /chats?page=2, пользователь не может поделиться ссылкой на конкретный чат.
Причина: В link_to отсутствует data-turbo-action="advance":
# app/views/tenants/chats/_chat_list.html.slim:4
= link_to tenant_chat_path(chat), class: "...", id: "chat_list_item_#{chat.id}"Решение: Добавить data: { turbo_action: "advance" }:
= link_to tenant_chat_path(chat), class: "...", id: "chat_list_item_#{chat.id}", data: { turbo_action: "advance" }Файлы для изменения
-
app/controllers/tenants/chats/manager_controller.rb— добавитьrespond_toв takeover, release, create_message -
app/views/tenants/chats/_chat_controls.html.slim— добавитьcursor-pointer -
app/views/tenants/chats/_chat_list.html.slim— добавитьdata-turbo-action="advance"
Шаги для воспроизведения
- Авторизоваться в tenant dashboard
- Перейти на
/chats - Кликнуть на чат в списке — URL не меняется
- Навести курсор на кнопку "Взять диалог" — курсор не pointer
- Кликнуть на кнопку "Взять диалог" — ничего не происходит
Среда
- URL: https://demo.3012.brandymint.ru/chats
- Браузер: любой
Связанные документы
- US-010: Tenant Chat Takeover
- TSD-011: Tenant Chat Takeover Technical Specification