bigblocks
Version:
Complete Bitcoin UI component library - authentication, social, wallet, market, inscriptions, and blockchain interactions for React
258 lines • 7.49 kB
TypeScript
import type { MessageTransaction } from "bmap-api-types";
import type { BroadcastResult, FeedConfig, FeedResponse, Reaction, SocialError, SocialFriend, SocialNotification, UserSearchResult } from "./social.js";
export interface PostMutationData {
content: string;
contentType?: "text/plain" | "text/markdown";
app?: string;
}
export interface ReplyMutationData extends PostMutationData {
parentTxid: string;
}
export interface UseSocialPostResult {
mutate: (variables: PostMutationData) => void;
mutateAsync: (variables: PostMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface UseReplyPostResult {
mutate: (variables: ReplyMutationData) => void;
mutateAsync: (variables: ReplyMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface LikeMutationData {
txid: string;
emoji?: string;
}
export interface UseLikePostResult {
mutate: (variables: LikeMutationData) => void;
mutateAsync: (variables: LikeMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface UseUnlikePostResult {
mutate: (variables: LikeMutationData) => void;
mutateAsync: (variables: LikeMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface FollowMutationData {
idKey: string;
}
export interface UseFollowUserResult {
mutate: (variables: FollowMutationData) => void;
mutateAsync: (variables: FollowMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface UseUnfollowUserResult {
mutate: (variables: FollowMutationData) => void;
mutateAsync: (variables: FollowMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface MessageMutationData {
recipient: string;
content: string;
encrypted?: boolean;
channel?: string;
}
export interface UseSendMessageResult {
mutate: (variables: MessageMutationData) => void;
mutateAsync: (variables: MessageMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface FriendRequestMutationData {
idKey: string;
}
export interface UseFriendRequestResult {
mutate: (variables: FriendRequestMutationData) => void;
mutateAsync: (variables: FriendRequestMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface UseAcceptFriendResult {
mutate: (variables: FriendRequestMutationData) => void;
mutateAsync: (variables: FriendRequestMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface UseUnfriendResult {
mutate: (variables: FriendRequestMutationData) => void;
mutateAsync: (variables: FriendRequestMutationData) => Promise<BroadcastResult>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
data: BroadcastResult | undefined;
reset: () => void;
}
export interface FeedQueryData {
config: FeedConfig;
}
export interface UseSocialFeedResult {
data: {
pages: FeedResponse[];
pageParams: unknown[];
} | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
fetchNextPage: () => void;
hasNextPage: boolean;
isFetchingNextPage: boolean;
}
export interface UserSearchQueryData {
query: string;
limit?: number;
}
export interface UseBapIdSearchResult {
data: UserSearchResult | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
refetch: () => void;
}
export interface ReactionsQueryData {
txid: string;
}
export interface UseReactionsResult {
data: Reaction[] | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
refetch: () => void;
}
export interface NotificationsQueryData {
idKey: string;
unreadOnly?: boolean;
}
export interface UseNotificationsResult {
data: SocialNotification[] | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
refetch: () => void;
}
export interface FriendsQueryData {
idKey: string;
}
export interface UseFriendsResult {
data: SocialFriend[] | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
refetch: () => void;
}
export interface MessagesQueryData {
channel?: string;
recipient?: string;
limit?: number;
}
export interface UseMessagesResult {
data: {
pages: MessageTransaction[][];
pageParams: unknown[];
} | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: SocialError | null;
fetchNextPage: () => void;
hasNextPage: boolean;
isFetchingNextPage: boolean;
}
export interface SocialHookConfig {
apiUrl?: string;
broadcaster?: string;
retryCount?: number;
cacheTime?: number;
staleTime?: number;
}
export interface OptimisticLike {
txid: string;
emoji: string;
added: boolean;
timestamp: number;
}
export interface OptimisticFollow {
idKey: string;
following: boolean;
timestamp: number;
}
export interface OptimisticPost {
tempId: string;
content: string;
contentType: "text/plain" | "text/markdown";
timestamp: number;
}
export interface MutationHelpers<TData, TError, TVariables> {
mutate: (variables: TVariables) => void;
mutateAsync: (variables: TVariables) => Promise<TData>;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: TError | null;
data: TData | undefined;
reset: () => void;
}
export interface QueryHelpers<TData, TError> {
data: TData | undefined;
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
error: TError | null;
refetch: () => Promise<TData>;
isFetching: boolean;
}
export interface InfiniteQueryHelpers<TData, TError> extends QueryHelpers<TData, TError> {
fetchNextPage: () => Promise<TData>;
fetchPreviousPage: () => Promise<TData>;
hasNextPage: boolean;
hasPreviousPage: boolean;
isFetchingNextPage: boolean;
isFetchingPreviousPage: boolean;
}
//# sourceMappingURL=hooks.d.ts.map