bigblocks
Version:
Complete Bitcoin UI component library - authentication, social, wallet, market, inscriptions, and blockchain interactions for React
64 lines (63 loc) • 2.24 kB
JavaScript
import { useFollowUser } from "./useFollowUser.js";
import { useFriendRequests } from "./useFriendRequests.js";
import { useFriends } from "./useFriends.js";
import { useLikePost } from "./useLikePost.js";
// Combined Social Hook - Combines post, follow, like, and friend operations
import { useSocialPost } from "./useSocialPost.js";
export function useSocial() {
const post = useSocialPost();
const follow = useFollowUser();
const like = useLikePost();
const friends = useFriends();
const friendRequests = useFriendRequests();
return {
// Post operations
createPost: post.mutate,
createPostAsync: post.mutateAsync,
// Follow operations
followUser: follow.mutate,
followUserAsync: follow.mutateAsync,
unfollowUser: follow.mutate,
unfollowUserAsync: follow.mutateAsync,
// Like operations
likePost: like.mutate,
likePostAsync: like.mutateAsync,
unlikePost: like.mutate,
unlikePostAsync: like.mutateAsync,
// Friend operations
acceptFriendRequest: friendRequests.acceptRequest,
declineFriendRequest: friendRequests.rejectRequest,
// Combined state
isLoading: post.isLoading ||
follow.isLoading ||
like.isLoading ||
friends.isLoading ||
friendRequests.isLoading,
isError: post.isError ||
follow.isError ||
like.isError ||
!!friends.error ||
!!friendRequests.error,
isSuccess: post.isSuccess || follow.isSuccess || like.isSuccess,
hasError: post.isError ||
follow.isError ||
like.isError ||
!!friends.error ||
!!friendRequests.error,
error: post.error ||
follow.error ||
like.error ||
friends.error ||
friendRequests.error,
// Data
friends: friends.friends || [],
friendRequests: friendRequests.requests || [],
// Combined reset
reset: () => {
post.reset();
follow.reset();
like.reset();
// friends and friendRequests don't have reset methods
},
};
}