handling starting and stopping broadcast
This commit is contained in:
@@ -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;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
Reference in New Issue
Block a user