fix(lceonline): notif spam

This commit is contained in:
neoapps-dev 2026-07-12 16:57:16 +03:00
parent 0eb2af8d46
commit 32e3023f1a

View file

@ -1,9 +1,17 @@
import { useState, useEffect, useRef } from "react";
import { lceOnlineService } from "../services/LceOnlineService";
export function useLceOnlineNotifications() {
const [friendRequestMessage, setFriendRequestMessage] = useState<string | null>(null);
const [friendRequestMessage, setFriendRequestMessage] = useState<
string | null
>(null);
const [InviteMessage, setInviteMessage] = useState<string | null>(null);
const [invites, setInvites] = useState<Array<{ inviteid: string; from: { uuid: string; username: string; }; sessionid: string; }>>([]);
const [invites, setInvites] = useState<
Array<{
inviteid: string;
from: { uuid: string; username: string };
sessionid: string;
}>
>([]);
const seenRequests = useRef<Set<string>>(new Set());
const seenInvites = useRef<Set<string>>(new Set());
useEffect(() => {
@ -24,12 +32,12 @@ export function useLceOnlineNotifications() {
const invitesData = await lceOnlineService.getInvites();
setInvites(invitesData);
invitesData.forEach((i) => {
if (!seenInvites.current.has(i.inviteid)) {
seenInvites.current.add(i.inviteid);
setInviteMessage(`${i.from.username} invited you to play!`);
}
});
} catch { }
if (!seenInvites.current.has(i.inviteid)) {
seenInvites.current.add(i.inviteid);
setInviteMessage(`${i.from.username} invited you to play!`);
}
});
} catch {}
};
const init = async () => {
@ -39,7 +47,6 @@ export function useLceOnlineNotifications() {
lists.requests.forEach((r: string) => {
if (!seenRequests.current.has(r)) {
seenRequests.current.add(r);
setFriendRequestMessage(`${r} wants to be friends!`);
}
});
} catch (e) {}
@ -47,12 +54,12 @@ export function useLceOnlineNotifications() {
const invitesData = await lceOnlineService.getInvites();
setInvites(invitesData);
invitesData.forEach((i) => {
if (!seenInvites.current.has(i.inviteid)) {
seenInvites.current.add(i.inviteid);
setInviteMessage(`${i.from.username} invited you to play!`);
}
});
} catch { }
if (!seenInvites.current.has(i.inviteid)) {
seenInvites.current.add(i.inviteid);
setInviteMessage(`${i.from.username} invited you to play!`);
}
});
} catch {}
}
pollInterval = setInterval(poll, 3000);
};