mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-05-09 04:23:01 -05:00
fix: defer ChatUserList subscription to prevent backlog loss and race conditions
This commit is contained in:
parent
6591e699d9
commit
60868a2d9f
|
|
@ -1428,12 +1428,18 @@ export class ChatUserList extends preact.Component<{
|
|||
room: ChatRoom, left?: number, top?: number, minimized?: boolean, static?: boolean,
|
||||
}> {
|
||||
subscription: PSSubscription | null = null;
|
||||
subscribeTimeout: number | null = null;
|
||||
override componentDidMount() {
|
||||
this.subscription = this.props.room.subscribe(args => {
|
||||
if (!args) this.forceUpdate();
|
||||
});
|
||||
this.subscribeTimeout = window.setTimeout(() => {
|
||||
this.subscribeTimeout = null;
|
||||
this.subscription = this.props.room.subscribe(args => {
|
||||
if (!args) this.forceUpdate();
|
||||
});
|
||||
this.forceUpdate();
|
||||
}, 0);
|
||||
}
|
||||
override componentWillUnmount() {
|
||||
if (this.subscribeTimeout !== null) window.clearTimeout(this.subscribeTimeout);
|
||||
this.subscription?.unsubscribe();
|
||||
}
|
||||
render() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user