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 // whether toggle tuned or temporarily
$ws.on(SocketChannels.SOMEONE_TUNED_TO_LINE, (res: SomeoneTuned) => { $ws.on(SocketChannels.SOMEONE_TUNED_TO_LINE, (res: SomeoneTuned) => {
// TODO: change the correct master line data to show user who's tuned in // TODO: change the correct master line data to show user who's tuned in
toast( toast(
`another user (${res.userId}) tuned into line ${res.lineId} that you are in also` `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 // todo: check if it's the user or someone else broadcasting
if (newMap[pull.lineId]) if (newMap[pull.lineId])
newMap[pull.lineId].isUserBroadcasting = true; newMap[pull.lineId].isUserBroadcasting = pull.isTurningOn;
return newMap; return newMap;
}); });
+32 -6
View File
@@ -53,14 +53,39 @@ export default function NirvanaTerminal() {
setSelectedLineId(null); setSelectedLineId(null);
}, [setSelectedLineId]); }, [setSelectedLineId]);
const handleStartBroadcast = useCallback(() => { const handleStartBroadcast = useCallback(
if (selectedLineId) handleUserBroadcast(selectedLineId, true); (lineId: string) => () => {
}, [selectedLineId]); 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( const keyMap: KeyMap = useMemo(
() => ({ () => ({
DESELECT_LINE: "esc", 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( const handlers = useMemo(
() => ({ () => ({
DESELECT_LINE: handleEscape, DESELECT_LINE: handleEscape,
START_BROADCAST: handleStartBroadcast, START_BROADCAST: handleStartBroadcast(selectedLineId),
STOP_BROADCAST: handleStopBroadcast(selectedLineId),
}), }),
[handleEscape, handleStartBroadcast] [selectedLineId]
); );
return ( return (