broadcast/ui/src/features/radio/radioWS.ts

42 lines
974 B
TypeScript

import { AppDispatch } from '../../app/store';
import {
setRadioStarted,
setRadioStopped,
unsetRadio,
setConnected,
setDisconnected,
} from './radioSlice';
export const getOnWSOpen = (dispatch: AppDispatch) => {
return () => {
console.log("[WS] Opened");
dispatch(setConnected());
}
};
export const getOnWSClose = (dispatch: AppDispatch) => {
return () => {
console.log("[WS] Closed")
dispatch(setDisconnected());
return true
}
};
export const getOnWSMessage = (dispatch: AppDispatch) => {
return (message: any) => {
console.log("[WS] Message: %s", JSON.stringify(message));
switch (message.status) {
case "STARTED":
dispatch(setRadioStarted());
break;
case "STOPPED":
dispatch(setRadioStopped());
break;
default:
dispatch(unsetRadio());
}
}
};