@sendbird/uikit-react
Version:
Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
126 lines (125 loc) • 5.25 kB
TypeScript
import React from 'react';
import { SendbirdState } from '../types';
import { TwoDepthPartial } from '../../../utils/typeHelpers/partialDeep';
/**
* SendbirdContext
*/
export declare const SendbirdContext: React.Context<import("../../../utils/storeManager").Store<SendbirdState>>;
/**
* Create store for Sendbird context
*/
export declare const createSendbirdContextStore: (props?: TwoDepthPartial<SendbirdState>) => import("../../../utils/storeManager").Store<{
config: {
renderUserProfile?: (props: import("../types").RenderUserProfileProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
onStartDirectMessage?: (props: import("@sendbird/chat/groupChannel").GroupChannel) => void;
allowProfileEdit: boolean;
isOnline: boolean;
userId: string;
appId: string;
accessToken?: string;
theme: string;
htmlTextDirection: import("../types").HTMLTextDirection;
forceLeftToRightMessageLayout: boolean;
pubSub: import("../../pubSub/topics").SBUGlobalPubSub;
logger: import("../../Logger").LoggerInterface;
setCurrentTheme: (theme: "light" | "dark") => void;
userListQuery?: () => import("../types").UserListQuery;
uikitUploadSizeLimit: number;
uikitMultipleFilesMessageLimit: number;
voiceRecord: {
maxRecordingTime: number;
minRecordingTime: number;
};
userMention: {
maxMentionCount: number;
maxSuggestionCount: number;
};
imageCompression: import("../types").ImageCompressionOptions;
markAsReadScheduler: import("../../hooks/useMarkAsReadScheduler").MarkAsReadSchedulerType;
markAsDeliveredScheduler: import("../../hooks/useMarkAsDeliveredScheduler").MarkAsDeliveredSchedulerType;
disableMarkAsDelivered: boolean;
isMultipleFilesMessageEnabled: boolean;
autoscrollMessageOverflowToTop: boolean;
common: {
enableUsingDefaultUserProfile: boolean;
};
groupChannel: {
enableOgtag: boolean;
enableTypingIndicator: boolean;
enableReactions: boolean;
enableMention: boolean;
replyType: "none" | "quote_reply" | "thread";
threadReplySelectType: "thread" | "parent";
enableVoiceMessage: boolean;
typingIndicatorTypes: Set<"text" | "bubble">;
enableDocument: boolean;
enableFeedback: boolean;
enableSuggestedReplies: boolean;
showSuggestedRepliesFor: "all_messages" | "last_message_only";
suggestedRepliesDirection: "vertical" | "horizontal";
enableMarkdownForUserMessage: boolean;
enableFormTypeMessage: boolean;
enableMarkAsUnread: boolean;
enableReactionsSupergroup: never;
};
groupChannelList: {
enableTypingIndicator: boolean;
enableMessageReceiptStatus: boolean;
};
groupChannelSettings: {
enableMessageSearch: boolean;
};
openChannel: {
enableOgtag: boolean;
enableDocument: boolean;
};
onUserProfileMessage?: (props: import("@sendbird/chat/groupChannel").GroupChannel) => void;
disableUserProfile: boolean;
isReactionEnabled: boolean;
isMentionEnabled: boolean;
isVoiceMessageEnabled?: boolean;
replyType: import("../types").ReplyType;
showSearchIcon?: boolean;
isTypingIndicatorEnabledOnChannelList?: boolean;
isMessageReceiptStatusEnabledOnChannelList?: boolean;
setCurrenttheme: (theme: "light" | "dark") => void;
};
stores: {
sdkStore: import("../types").SdkStore;
userStore: import("../types").UserStore;
appInfoStore: import("../types").AppInfoStore;
};
eventHandlers: {
reaction?: {
onPressUserProfile?(member: import("@sendbird/chat").User): void;
};
connection?: {
onConnected?(user: import("@sendbird/chat").User): void;
onFailed?(error: import("@sendbird/chat").SendbirdError): void;
};
modal?: {
onMounted?(params: {
id: string;
close(): void;
}): void | (() => void);
};
message?: {
onSendMessageFailed?: (message: import("../../../utils").CoreMessageType, error: unknown) => void;
onUpdateMessageFailed?: (message: import("../../../utils").CoreMessageType, error: unknown) => void;
onFileUploadFailed?: (error: unknown) => void;
};
};
emojiManager: import("../../emojiManager").EmojiManager;
utils: {
updateMessageTemplatesInfo: (templateKeys: string[], messageId: number, createdAt: number) => Promise<void>;
getCachedTemplate: (key: string) => import("../types").ProcessedMessageTemplate;
};
}>;
/**
* A specialized hook for Sendbird state management
* @returns {ReturnType<typeof createStore<SendbirdState>>}
*/
export declare const useSendbirdStore: () => {
state: SendbirdState;
updateState: (updates: Partial<SendbirdState>) => void;
};