Skip to content

Commit eef4e12

Browse files
committed
feat(game): clear streams on game connect
1 parent 87440aa commit eef4e12

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

electron/renderer/components/game/game-stream.tsx

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useObservable, useSubscription } from 'observable-hooks';
33
import type { ReactNode } from 'react';
44
import { useCallback, useEffect, useRef, useState } from 'react';
55
import type * as rxjs from 'rxjs';
6+
import { useSubscribe } from '../../hooks/pubsub.jsx';
67
import type { GameLogLine } from '../../types/game.types.jsx';
78
import { GameStreamText } from './game-stream-text.jsx';
89
import {
@@ -45,16 +46,21 @@ export const GameStream: React.FC<GameStreamProps> = (
4546
): ReactNode => {
4647
const { stream$, primaryStreamId, gameStreamIds, maxLines = 500 } = props;
4748

49+
const [gameLogLines, setGameLogLines] = useState<Array<GameLogLine>>([]);
50+
const clearStreamTimeoutRef = useRef<NodeJS.Timeout>();
51+
52+
// Clear streams on new connections.
53+
useSubscribe(['game:connect'], () => {
54+
setGameLogLines([]);
55+
});
56+
4857
const filteredStream$ = useObservable(() => {
4958
return stream$.pipe(
5059
filterLinesForGameStreams({ gameStreamIds }),
5160
excludeDuplicateEmptyLines
5261
);
5362
});
5463

55-
const [gameLogLines, setGameLogLines] = useState<Array<GameLogLine>>([]);
56-
const clearStreamTimeoutRef = useRef<NodeJS.Timeout>();
57-
5864
const appendGameLogLines = useCallback(
5965
(newLogLines: Array<GameLogLine>) => {
6066
setGameLogLines((oldLogLines: Array<GameLogLine>): Array<GameLogLine> => {

0 commit comments

Comments
 (0)