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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user