handling starting and stopping broadcast

This commit is contained in:
talksik
2022-05-06 12:06:16 -05:00
parent 886f10cf23
commit 309e74ff94
2 changed files with 34 additions and 7 deletions
@@ -81,6 +81,7 @@ export function LineDataProvider({ children }) {
// whether toggle tuned or temporarily
$ws.on(SocketChannels.SOMEONE_TUNED_TO_LINE, (res: SomeoneTuned) => {
// TODO: change the correct master line data to show user who's tuned in
toast(
`another user (${res.userId}) tuned into line ${res.lineId} that you are in also`
);
@@ -104,7 +105,7 @@ export function LineDataProvider({ children }) {
// todo: check if it's the user or someone else broadcasting
if (newMap[pull.lineId])
newMap[pull.lineId].isUserBroadcasting = true;
newMap[pull.lineId].isUserBroadcasting = pull.isTurningOn;
return newMap;
});
+32 -6
View File
@@ -53,14 +53,39 @@ export default function NirvanaTerminal() {
setSelectedLineId(null);
}, [setSelectedLineId]);
const handleStartBroadcast = useCallback(() => {
if (selectedLineId) handleUserBroadcast(selectedLineId, true);
}, [selectedLineId]);
const handleStartBroadcast = useCallback(
(lineId: string) => () => {
console.log(`starting broadcast for ${lineId}!!!`);
// todo: enable stream in this tuned in channel
if (lineId) handleUserBroadcast(lineId, true);
},
[]
);
const handleStopBroadcast = useCallback(
(lineId: string) => () => {
console.log(`stopping broadcast for ${lineId}!!!`);
// todo: disable stream in this tuned in channel
if (lineId) handleUserBroadcast(lineId, false);
},
[]
);
const keyMap: KeyMap = useMemo(
() => ({
DESELECT_LINE: "esc",
START_BROADCAST: "`",
START_BROADCAST: {
sequence: "`",
action: "keydown",
},
STOP_BROADCAST: {
sequence: "`",
action: "keyup",
},
}),
[]
);
@@ -68,9 +93,10 @@ export default function NirvanaTerminal() {
const handlers = useMemo(
() => ({
DESELECT_LINE: handleEscape,
START_BROADCAST: handleStartBroadcast,
START_BROADCAST: handleStartBroadcast(selectedLineId),
STOP_BROADCAST: handleStopBroadcast(selectedLineId),
}),
[handleEscape, handleStartBroadcast]
[selectedLineId]
);
return (