PromucFlow_constructor/app/client/src/sagas/WebsocketSagas/handlePageLevelSocketEvents.ts
2021-10-04 13:31:46 +05:30

33 lines
993 B
TypeScript

import { put } from "redux-saga/effects";
import { PAGE_LEVEL_SOCKET_EVENTS } from "./socketEvents";
import {
collabSetEditorsPointersData,
collabUnsetEditorsPointersData,
collabConcurrentPageEditorsData,
} from "actions/appCollabActions";
import * as Sentry from "@sentry/react";
export default function* handlePageLevelSocketEvents(event: any, socket: any) {
try {
switch (event.type) {
case PAGE_LEVEL_SOCKET_EVENTS.SHARE_USER_POINTER: {
if (socket.id !== event.payload[0].socketId) {
yield put(collabSetEditorsPointersData(event.payload[0]));
}
return;
}
case PAGE_LEVEL_SOCKET_EVENTS.STOP_EDITING_APP: {
yield put(collabUnsetEditorsPointersData(event.payload[0]));
return;
}
case PAGE_LEVEL_SOCKET_EVENTS.LIST_ONLINE_PAGE_EDITORS: {
yield put(collabConcurrentPageEditorsData(event.payload[0]?.users));
return;
}
}
} catch (e) {
Sentry.captureException(e);
}
}