|
|
|
@ -1,6 +1,7 @@ |
|
|
|
import { AppDispatch } from "app/store"; |
|
|
|
import { |
|
|
|
RoomMembership, |
|
|
|
RoomMessage, |
|
|
|
RoomMessagePayload, |
|
|
|
RoomState, |
|
|
|
roomGetAll, |
|
|
|
@ -10,7 +11,11 @@ import { |
|
|
|
roomSetAll, |
|
|
|
roomSetState, |
|
|
|
} from "modules/room/slice"; |
|
|
|
import { SocketMessage, SocketMessageMiddleware } from "modules/socket/message"; |
|
|
|
import { |
|
|
|
SocketMessage, |
|
|
|
SocketMessageMiddleware, |
|
|
|
SocketMessageSender, |
|
|
|
} from "modules/socket/message"; |
|
|
|
|
|
|
|
function convertMembership(membership: string): RoomMembership { |
|
|
|
switch (membership) { |
|
|
|
@ -22,6 +27,8 @@ function convertMembership(membership: string): RoomMembership { |
|
|
|
return RoomMembership.Joined; |
|
|
|
case "Leaving": |
|
|
|
return RoomMembership.Leaving; |
|
|
|
default: |
|
|
|
throw new TypeError(`invalid membership string: ${membership}`); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -51,7 +58,7 @@ function convertRoomListEntry(name: string, room: any): RoomState { |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
function handleRoomListResponse(dispatch: AppDispatch, response): void { |
|
|
|
function handleRoomListResponse(dispatch: AppDispatch, response: any): void { |
|
|
|
const { rooms } = response; |
|
|
|
if (rooms === undefined) { |
|
|
|
console.log("RoomListResponse has wrong shape:", response); |
|
|
|
@ -66,7 +73,7 @@ function handleRoomListResponse(dispatch: AppDispatch, response): void { |
|
|
|
dispatch(roomSetAll(payload)); |
|
|
|
} |
|
|
|
|
|
|
|
function handleRoomMessageResponse(dispatch: AppDispatch, response): void { |
|
|
|
function handleRoomMessageResponse(dispatch: AppDispatch, response: any): void { |
|
|
|
dispatch( |
|
|
|
roomReceiveMessage({ |
|
|
|
roomName: response.room_name, |
|
|
|
@ -76,12 +83,12 @@ function handleRoomMessageResponse(dispatch: AppDispatch, response): void { |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
function handleRoomJoinResponse(dispatch: AppDispatch, response): void { |
|
|
|
function handleRoomJoinResponse(dispatch: AppDispatch, response: any): void { |
|
|
|
const room = convertRoomListEntry(response.room_name, response.room); |
|
|
|
dispatch(roomSetState(room)); |
|
|
|
} |
|
|
|
|
|
|
|
function handleRoomLeaveResponse(dispatch: AppDispatch, response): void { |
|
|
|
function handleRoomLeaveResponse(dispatch: AppDispatch, response: any): void { |
|
|
|
dispatch(roomSetMembership([response.room_name, RoomMembership.Left])); |
|
|
|
} |
|
|
|
|
|
|
|
|