UNPKG

@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
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; };