From 28249f88d6204c7d1179ff8ee5b5339bcf6d4e23 Mon Sep 17 00:00:00 2001 From: DuckieTM Date: Sat, 23 Mar 2024 09:58:59 +0100 Subject: [PATCH] Fix: Double friends entry --- src/hooks/friends/useFriends.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/hooks/friends/useFriends.ts b/src/hooks/friends/useFriends.ts index 05437b2..46820b2 100644 --- a/src/hooks/friends/useFriends.ts +++ b/src/hooks/friends/useFriends.ts @@ -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 { 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 { useNotification } from '../notification'; const useFriendsState = () => { @@ -11,6 +12,7 @@ const useFriendsState = () => const [ sentRequests, setSentRequests ] = useState([]); const [ dismissedRequestIds, setDismissedRequestIds ] = useState([]); const [ settings, setSettings ] = useState(null); + const { simpleAlert } = useNotification(); const onlineFriends = useMemo(() => { @@ -194,7 +196,7 @@ const useFriendsState = () => return newValue; }); }); - + useMessageEvent(FriendRequestsEvent, event => { const parser = event.getParser(); @@ -207,7 +209,7 @@ const useFriendsState = () => { const index = newValue.findIndex(existing => (existing.requesterUserId === request.requesterUserId)); - if(index > 0) + if(index >= 0) { newValue[index] = CloneObject(newValue[index]); newValue[index].populate(request); @@ -248,11 +250,20 @@ const useFriendsState = () => }); }); + useMessageEvent(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(() => { SendMessageComposer(new MessengerInitComposer()); - const interval = setInterval(() => SendMessageComposer(new FriendListUpdateComposer()), 120000); + const interval = window.setInterval(() => SendMessageComposer(new FriendListUpdateComposer()), 120000); return () => { @@ -263,4 +274,4 @@ const useFriendsState = () => return { friends, requests, sentRequests, dismissedRequestIds, setDismissedRequestIds, settings, onlineFriends, offlineFriends, getFriend, canRequestFriend, requestFriend, requestResponse, followFriend, updateRelationship }; } -export const useFriends = () => useBetween(useFriendsState); +export const useFriends = () => useBetween(useFriendsState); \ No newline at end of file