Integrate chat panel into GuestKiosk
Cancelled
Subtask
Medium
Description
## Task
Integrate the `SessionChatPanel` component into the guest's `GuestKiosk` interface.
## Layout Changes
Add collapsible chat panel to guest UI:
```
┌─────────────────────────────────────────┬──────────────┐
│ │ │
│ Operator Video │ Chat │
│ │ Panel │
│ │ (collapse) │
│ [Self PiP] │ │
├─────────────────────────────────────────┴──────────────┤
│ Session info / footer [Chat] [Mic Check] │
└────────────────────────────────────────────────────────┘
```
## Integration Points
1. Add chat toggle button (with unread badge) to footer
2. Pass guest token to `SessionChatPanel` for ActionCable auth
3. Prompt for guest name on first message (or use "Guest")
4. Use ActionCable for real-time subscription
5. Handle session ended state gracefully
## Props to Pass
```jsx
<SessionChatPanel
sessionId={sessionId}
participantType="guest"
participantName={guestName || 'Guest'}
token={guestToken}
initialMessages={messages}
isCollapsed={chatCollapsed}
onToggle={() => setChatCollapsed(!chatCollapsed)}
disabled={sessionState === 'ended'}
/>
```
## Guest Name Handling
- Store in localStorage for session persistence
- Optional: prompt modal on first message
- Default to translated "Guest" if not provided
## Translations
Add to `app/javascript/i18n/guest/translations.js`:
- `guest.chat.title`
- `guest.chat.placeholder`
- `guest.chat.send`
- `guest.chat.empty`
- `guest.chat.name_prompt`
## Files to Modify
- `app/javascript/components/remote_support/GuestKiosk.jsx`
- `app/javascript/i18n/guest/translations.js`
- `app/views/remote_support_guest/show.html.haml` (pass initial messages if needed)
- `app/controllers/remote_support_guest_controller.rb` (include messages in response)
Working Memory
{
"blocked_reason": "Waiting for dependencies: 105"
}
Ticket Stats
Status:
Cancelled
Priority:
Medium
Type:
Subtask
Comments
0 commentsAdd a Comment
No Subtasks Yet
Break down this ticket into smaller, manageable subtasks