UNPKG

@sendbird/uikit-react-native

Version:

Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

80 lines (79 loc) 3.38 kB
import React from 'react'; import { SBUConfig } from '@sendbird/uikit-tools'; import type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils'; import type EmojiManager from '../libs/EmojiManager'; import type ImageCompressionConfig from '../libs/ImageCompressionConfig'; import type MentionManager from '../libs/MentionManager'; import type VoiceMessageConfig from '../libs/VoiceMessageConfig'; import VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager'; import type { FileType } from '../platform/types'; import { type PubSub } from '../utils/pubsub'; export interface ChatRelatedFeaturesInUIKit { enableAutoPushTokenRegistration: boolean; enableUseUserIdForNickname: boolean; enableImageCompression: boolean; } interface Props extends ChatRelatedFeaturesInUIKit, React.PropsWithChildren { sdkInstance: SendbirdChatSDK; emojiManager: EmojiManager; mentionManager: MentionManager; voiceMessageStatusManager: VoiceMessageStatusManager; imageCompressionConfig: ImageCompressionConfig; voiceMessageConfig: VoiceMessageConfig; } export type GroupChannelFragmentOptionsPubSubContextPayload = { type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT'; data: { startingPoint: number; }; }; export type SendbirdChatContextType = { sdk: SendbirdChatSDK; currentUser?: SendbirdUser; setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>; emojiManager: EmojiManager; mentionManager: MentionManager; voiceMessageStatusManager: VoiceMessageStatusManager; imageCompressionConfig: ImageCompressionConfig; voiceMessageConfig: VoiceMessageConfig; updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise<SendbirdUser>; markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void; groupChannelFragmentOptions: { pubsub: PubSub<GroupChannelFragmentOptionsPubSubContextPayload>; }; sbOptions: { uikit: SBUConfig; uikitWithAppInfo: { groupChannel: { channel: { readonly enableReactions: boolean; readonly enableReactionsSupergroup: boolean; readonly enableOgtag: boolean; }; setting: { readonly enableMessageSearch: boolean; }; }; openChannel: { channel: { readonly enableOgtag: boolean; }; }; }; chat: { imageCompressionEnabled: boolean; useUserIdForNicknameEnabled: boolean; autoPushTokenRegistrationEnabled: boolean; }; appInfo: { deliveryReceiptEnabled: boolean; broadcastChannelEnabled: boolean; superGroupChannelEnabled: boolean; reactionEnabled: boolean; uploadSizeLimit: number | undefined; }; }; }; export declare const SendbirdChatContext: React.Context<SendbirdChatContextType | null>; export declare const SendbirdChatProvider: ({ children, sdkInstance, emojiManager, mentionManager, voiceMessageStatusManager, imageCompressionConfig, voiceMessageConfig, enableAutoPushTokenRegistration, enableUseUserIdForNickname, enableImageCompression, }: Props) => React.JSX.Element; export {};