|
|
|
@ -1,5 +1,5 @@ |
|
|
|
import { AppDispatch } from "../../app/store"; |
|
|
|
import { roomGetAll, roomSetAll } from "./slice"; |
|
|
|
import { roomMessage, roomGetAll, roomSetAll } from "./slice"; |
|
|
|
import { SocketMessage, SocketMessageMiddleware } from "../websocket/message"; |
|
|
|
|
|
|
|
function roomListRequest(): SocketMessage { |
|
|
|
@ -24,12 +24,24 @@ function handleRoomListResponse(dispatch: AppDispatch, outerFields: any[]) { |
|
|
|
dispatch(roomSetAll(rooms)); |
|
|
|
} |
|
|
|
|
|
|
|
function handleRoomMessageResponse(dispatch: AppDispatch, outerFields: any[]) { |
|
|
|
if (outerFields.length !== 1) { |
|
|
|
console.log("RoomMessageResponse has wrong number of fields:", outerFields); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
dispatch(roomMessage(outerFields[0])); |
|
|
|
} |
|
|
|
|
|
|
|
export const roomSocketMessageMiddleware: SocketMessageMiddleware = { |
|
|
|
handleMessage: (dispatch, { variant, fields }) => { |
|
|
|
switch (variant) { |
|
|
|
case "RoomListResponse": |
|
|
|
handleRoomListResponse(dispatch, fields); |
|
|
|
break; |
|
|
|
case "RoomMessageResponse": |
|
|
|
handleRoomMessageResponse(dispatch, fields); |
|
|
|
break; |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|