Fix: Double friends entry

This commit is contained in:
DuckieTM 2024-03-23 09:58:59 +01:00
parent 5c325f37f5
commit 28249f88d6

View File

@ -1,8 +1,9 @@
import { AcceptFriendMessageComposer, DeclineFriendMessageComposer, FollowFriendMessageComposer, FriendListFragmentEvent, FriendListUpdateComposer, FriendListUpdateEvent, FriendParser, FriendRequestsEvent, GetFriendRequestsComposer, MessengerInitComposer, MessengerInitEvent, NewFriendRequestEvent, RequestFriendComposer, SetRelationshipStatusComposer } from '@nitrots/nitro-renderer'; import { AcceptFriendMessageComposer, DeclineFriendMessageComposer, FindFriendsProcessResultEvent, FollowFriendMessageComposer, FriendListFragmentEvent, FriendListUpdateComposer, FriendListUpdateEvent, FriendParser, FriendRequestsEvent, GetFriendRequestsComposer, MessengerInitComposer, MessengerInitEvent, NewFriendRequestEvent, RequestFriendComposer, SetRelationshipStatusComposer } from '@nitrots/nitro-renderer';
import { useEffect, useMemo, useState } from 'react'; import { useEffect, useMemo, useState } from 'react';
import { useBetween } from 'use-between'; import { useBetween } from 'use-between';
import { CloneObject, GetSessionDataManager, MessengerFriend, MessengerRequest, MessengerSettings, SendMessageComposer } from '../../api'; import { CloneObject, GetSessionDataManager, LocalizeText, MessengerFriend, MessengerRequest, MessengerSettings, SendMessageComposer } from '../../api';
import { useMessageEvent } from '../events'; import { useMessageEvent } from '../events';
import { useNotification } from '../notification';
const useFriendsState = () => const useFriendsState = () =>
{ {
@ -11,6 +12,7 @@ const useFriendsState = () =>
const [ sentRequests, setSentRequests ] = useState<number[]>([]); const [ sentRequests, setSentRequests ] = useState<number[]>([]);
const [ dismissedRequestIds, setDismissedRequestIds ] = useState<number[]>([]); const [ dismissedRequestIds, setDismissedRequestIds ] = useState<number[]>([]);
const [ settings, setSettings ] = useState<MessengerSettings>(null); const [ settings, setSettings ] = useState<MessengerSettings>(null);
const { simpleAlert } = useNotification();
const onlineFriends = useMemo(() => const onlineFriends = useMemo(() =>
{ {
@ -207,7 +209,7 @@ const useFriendsState = () =>
{ {
const index = newValue.findIndex(existing => (existing.requesterUserId === request.requesterUserId)); const index = newValue.findIndex(existing => (existing.requesterUserId === request.requesterUserId));
if(index > 0) if(index >= 0)
{ {
newValue[index] = CloneObject(newValue[index]); newValue[index] = CloneObject(newValue[index]);
newValue[index].populate(request); newValue[index].populate(request);
@ -248,11 +250,20 @@ const useFriendsState = () =>
}); });
}); });
useMessageEvent<FindFriendsProcessResultEvent>(FindFriendsProcessResultEvent, event =>
{
const parser = event.getParser();
if (!parser) return;
simpleAlert(LocalizeText(!parser.success ? 'friendbar.find.error.text' : 'friendbar.find.success.text'), '', '', '', LocalizeText(!parser.success ? 'friendbar.find.error.title' : 'friendbar.find.success.title'));
});
useEffect(() => useEffect(() =>
{ {
SendMessageComposer(new MessengerInitComposer()); SendMessageComposer(new MessengerInitComposer());
const interval = setInterval(() => SendMessageComposer(new FriendListUpdateComposer()), 120000); const interval = window.setInterval(() => SendMessageComposer(new FriendListUpdateComposer()), 120000);
return () => return () =>
{ {