Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 1x 1x 1x 1x 17x 17x 8x 7x 17x 10x 17x 17x 17x 17x 3x 17x 17x | import { friendRequestKey, FriendRequestType } from "features/queryKeys";
import { useLiteUsers } from "features/userQueries/useLiteUsers";
import { FriendRequest } from "proto/api_pb";
import { useQuery } from "react-query";
import { service } from "service";
export default function useFriendRequests(
friendRequestType: FriendRequestType
) {
const {
data: friendRequestLists,
isLoading: isFriendReqLoading,
error,
} = useQuery<FriendRequest.AsObject[], Error>(
friendRequestKey(friendRequestType),
async () => {
const friendRequests = await service.api.listFriendRequests();
return friendRequestType === "sent"
? friendRequests.sentList
: friendRequests.receivedList;
}
);
const userIds = (friendRequestLists ?? []).map(
(friendReq) => friendReq.userId
);
const {
data: liteUsersData,
isLoading: isLiteUsersLoading,
error: liteUserError,
} = useLiteUsers(userIds);
const errors = error
? [error.message, liteUserError?.message]
: liteUserError?.message
? [liteUserError.message]
: [];
const isLoading = isFriendReqLoading || isLiteUsersLoading;
const formattedFriendRequests = !liteUsersData
? []
: (friendRequestLists ?? []).map((friendRequest) => ({
...friendRequest,
friend: liteUsersData.get(friendRequest.userId),
}));
const data = !isLoading ? formattedFriendRequests : undefined;
return {
data,
errors,
isError: !!errors.length,
isLoading,
};
}
|