@sendbird/uikit-react
Version:
Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
97 lines (96 loc) • 7.13 kB
TypeScript
import React from 'react';
import type { GroupChannel } from '@sendbird/chat/groupChannel';
import { ThreadReplySelectType } from './const';
import type { GroupChannelProviderProps, MessageListQueryParamsType, GroupChannelState } from './types';
export declare const GroupChannelContext: React.Context<import("../../../utils/storeManager").Store<GroupChannelState>>;
export declare const InternalGroupChannelProvider: (props: GroupChannelProviderProps) => React.JSX.Element;
declare const GroupChannelManager: React.FC<React.PropsWithChildren<GroupChannelProviderProps>>;
declare const GroupChannelProvider: React.FC<GroupChannelProviderProps>;
declare const useGroupChannelContext: () => {
setCurrentChannel: (channel: GroupChannel) => void;
handleChannelError: (error: import("@sendbird/chat").SendbirdError) => void;
markAsReadAll: (channel: GroupChannel) => void;
markAsUnread: (message: import("../../../utils").SendableMessageType, source?: "manual" | "internal") => void;
setReadStateChanged: (state: string) => void;
setFirstUnreadMessageId: (messageId: string | number) => void;
sendUserMessage: (params: import("@sendbird/chat/message").UserMessageCreateParams) => Promise<import("@sendbird/chat/message").UserMessage>;
sendFileMessage: (params: import("@sendbird/chat/message").FileMessageCreateParams) => Promise<import("@sendbird/chat/message").FileMessage>;
sendMultipleFilesMessage: (params: import("@sendbird/chat/message").MultipleFilesMessageCreateParams) => Promise<import("@sendbird/chat/message").MultipleFilesMessage>;
updateUserMessage: (messageId: number, params: import("@sendbird/chat/message").UserMessageUpdateParams) => Promise<import("@sendbird/chat/message").UserMessage>;
setQuoteMessage: (message: import("../../../utils").SendableMessageType) => void;
setAnimatedMessageId: (messageId: number) => void;
setIsScrollBottomReached: (isReached: boolean) => void;
scrollToBottom: (animated?: boolean) => Promise<void>;
scrollToMessage: (createdAt: number, messageId: number, messageFocusAnimated?: boolean, scrollAnimated?: boolean) => Promise<void>;
toggleReaction: (message: import("../../../utils").SendableMessageType, emojiKey: string, isReacted: boolean) => void;
sendVoiceMessage: (params: import("@sendbird/chat/message").FileMessageCreateParams, duration: number) => Promise<import("@sendbird/chat/message").FileMessage>;
initialized: boolean;
loading: boolean;
refreshing: boolean;
messages: import("@sendbird/chat/message").BaseMessage[];
newMessages: import("@sendbird/chat/message").BaseMessage[];
resetNewMessages: () => void;
refresh: () => Promise<void>;
loadPrevious: () => Promise<void>;
hasPrevious: () => boolean;
loadNext: () => Promise<void>;
hasNext: () => boolean;
sendFileMessages: (paramsList: import("@sendbird/chat/message").FileMessageCreateParams[], onPending?: (message: import("@sendbird/chat/message").FileMessage) => void) => Promise<import("@sendbird/chat/message").FileMessage[]>;
updateFileMessage: (messageId: number, params: import("@sendbird/chat/message").FileMessageUpdateParams) => Promise<import("@sendbird/chat/message").FileMessage>;
resendMessage: <T extends import("@sendbird/chat/message").UserMessage | import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").MultipleFilesMessage>(failedMessage: T) => Promise<T>;
deleteMessage: <T_1 extends import("@sendbird/chat/message").UserMessage | import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").MultipleFilesMessage>(message: T_1) => Promise<void>;
resetWithStartingPoint: (startingPoint: number) => Promise<void>;
_dangerous_reducer_updateMessages: (messages: import("@sendbird/chat/message").BaseMessage[], clearBeforeAction: boolean, currentUserId?: string, strictStreamingOrder?: boolean) => void;
_dangerous_reducer_deleteMessages: (messageIds: number[], reqIds: string[]) => void;
channelUrl: string;
isReactionEnabled?: boolean;
isMessageGroupingEnabled?: boolean;
isMultipleFilesMessageEnabled?: boolean;
showSearchIcon?: boolean;
replyType?: import("../../../types").ReplyType;
threadReplySelectType?: ThreadReplySelectType;
disableMarkAsRead?: boolean;
scrollBehavior?: "auto" | "smooth";
forceLeftToRightMessageLayout?: boolean;
startingPoint?: number;
animatedMessageId?: number;
onMessageAnimated?: () => void;
messageListQueryParams?: MessageListQueryParamsType;
filterEmojiCategoryIds?: (message: import("../../../utils").SendableMessageType) => number[];
onBeforeSendUserMessage?: import("./types").OnBeforeHandler<import("@sendbird/chat/message").UserMessageCreateParams>;
onBeforeSendFileMessage?: import("./types").OnBeforeHandler<import("@sendbird/chat/message").FileMessageCreateParams>;
onBeforeSendVoiceMessage?: import("./types").OnBeforeHandler<import("@sendbird/chat/message").FileMessageCreateParams>;
onBeforeSendMultipleFilesMessage?: import("./types").OnBeforeHandler<import("@sendbird/chat/message").MultipleFilesMessageCreateParams>;
onBeforeUpdateUserMessage?: import("./types").OnBeforeHandler<import("@sendbird/chat/message").UserMessageUpdateParams>;
onBeforeDownloadFileMessage?: import("./types").OnBeforeDownloadFileMessageType;
onBackClick?(): void;
onChatHeaderActionClick?(event: React.MouseEvent<HTMLElement, MouseEvent>): void;
onReplyInThreadClick?: (props: {
message: import("../../../utils").SendableMessageType;
}) => void;
onSearchClick?(): void;
onQuoteMessageClick?: (props: {
message: import("../../../utils").SendableMessageType;
}) => void;
renderUserMentionItem?: (props: {
user: import("@sendbird/chat").User;
}) => JSX.Element;
renderUserProfile?: ((props: import("../../../types").RenderUserProfileProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>) & ((props: import("../../../types").RenderUserProfileProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
onStartDirectMessage?: (channel: GroupChannel) => void;
onUserProfileMessage?: (channel: GroupChannel) => void;
disableUserProfile?: boolean;
children?: React.ReactNode;
currentChannel: GroupChannel;
fetchChannelError: import("@sendbird/chat").SendbirdError;
nicknamesMap: Map<string, string>;
quoteMessage: import("../../../utils").SendableMessageType;
isScrollBottomReached: boolean;
readState: string;
scrollRef: React.RefObject<HTMLDivElement>;
scrollDistanceFromBottomRef: React.MutableRefObject<number>;
scrollPositionRef: React.MutableRefObject<number>;
messageInputRef: React.RefObject<HTMLDivElement>;
markAsUnreadSourceRef: React.MutableRefObject<"manual" | "internal">;
scrollPubSub: import("../../../lib/pubSub").PubSubTypes<import("./hooks/useMessageListScroll").ScrollTopics, import("./hooks/useMessageListScroll").ScrollTopicUnion>;
};
export { GroupChannelProvider, useGroupChannelContext, GroupChannelManager, };