fix(frontend): eventListener leak

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
This commit is contained in:
ゆめ 2024-11-10 00:09:08 -06:00
parent e74174dea3
commit 997c5b3d35

View file

@ -68,14 +68,20 @@ export function useStream(): Misskey.IStream {
if (timeoutHeartBeat) window.clearTimeout(timeoutHeartBeat);
timeoutHeartBeat = window.setTimeout(heartbeat, HEART_BEAT_INTERVAL);
// send heartbeat right now when last send time is over HEART_BEAT_INTERVAL
document.addEventListener('visibilitychange', () => {
const target = () => {
if (
!stream
|| document.visibilityState !== 'visible'
|| Date.now() - lastHeartbeatCall < HEART_BEAT_INTERVAL
) return;
heartbeat();
};
// send heartbeat right now when last send time is over HEART_BEAT_INTERVAL
document.addEventListener('visibilitychange', target);
stream.on('_disconnected_', () => {
document.removeEventListener('visibilitychange', target);
});
return stream;