fix: make leave room button actually remove user from room

When clicking "Leave Room", the user is now properly removed from
room membership (not just marked offline) and navigated to /arcade.

Previously:
- Just navigated to /arcade/rooms
- User remained as offline member of the room
- Socket cleanup only marked user offline

Now:
- Calls POST /api/arcade/rooms/:roomId/leave
- Actually removes user from room_members table
- Navigates to /arcade home page
- Users can be in at most 1 room (or 0 rooms)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Thomas Hallock
2025-10-08 08:44:58 -05:00
parent b4c8cfaad2
commit 49f12f8cab

View File

@@ -196,8 +196,24 @@ export default function RoomDetailPage() {
}
}
const leaveRoom = () => {
router.push('/arcade/rooms')
const leaveRoom = async () => {
try {
const response = await fetch(`/api/arcade/rooms/${roomId}/leave`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
})
if (!response.ok) {
const errorData = await response.json()
throw new Error(errorData.error || `HTTP ${response.status}`)
}
// Navigate to arcade home after successfully leaving
router.push('/arcade')
} catch (err) {
console.error('Failed to leave room:', err)
alert('Failed to leave room')
}
}
if (loading) {