Fix friend list selected users

This commit is contained in:
Bill 2022-03-16 22:34:15 -04:00
parent c82b9653dd
commit 6f634cc6af

View File

@ -21,9 +21,7 @@ interface FriendsListViewProps
export const FriendsListView: FC<FriendsListViewProps> = props =>
{
const { onlineFriends = [], offlineFriends = [], friendRequests = [], onCloseClick = null } = props;
const [ selectedFriendsIds, setSelectedFriendsIds ] = useState<number[]>([]);
const [ showRoomInvite, setShowRoomInvite ] = useState<boolean>(false);
const [ showRemoveFriendsConfirmation, setShowRemoveFriendsConfirmation ] = useState<boolean>(false);
@ -51,37 +49,46 @@ export const FriendsListView: FC<FriendsListViewProps> = props =>
{
if(userId < 0) return;
const existingUserIdIndex: number = selectedFriendsIds.indexOf(userId);
setSelectedFriendsIds(prevValue =>
{
const newValue = [ ...prevValue ];
const existingUserIdIndex: number = newValue.indexOf(userId);
if(existingUserIdIndex > -1)
{
const clonedFriend = [...selectedFriendsIds];
clonedFriend.splice(existingUserIdIndex, 1)
setSelectedFriendsIds([...clonedFriend]);
newValue.splice(existingUserIdIndex, 1)
}
else
{
setSelectedFriendsIds([...selectedFriendsIds, userId]);
newValue.push(userId);
}
}, [ selectedFriendsIds, setSelectedFriendsIds ]);
const sendRoomInvite = useCallback((message: string) =>
return newValue;
});
}, [ setSelectedFriendsIds ]);
const sendRoomInvite = (message: string) =>
{
if(selectedFriendsIds.length === 0 || !message || message.length === 0) return;
SendMessageComposer(new SendRoomInviteComposer(message, ...selectedFriendsIds));
setShowRoomInvite(false);
}, [ selectedFriendsIds, setShowRoomInvite ]);
}
const removeSelectedFriends = useCallback(() =>
const removeSelectedFriends = () =>
{
if(selectedFriendsIds.length === 0) return;
SendMessageComposer(new RemoveFriendComposer(...selectedFriendsIds));
setSelectedFriendsIds([]);
setSelectedFriendsIds(prevValue =>
{
SendMessageComposer(new RemoveFriendComposer(...prevValue));
return [];
});
setShowRemoveFriendsConfirmation(false);
}, [ selectedFriendsIds ]);
}
return (
<>