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.

84 lines (83 loc) 4.24 kB
import React from 'react'; import { SendbirdChatParams } from '@sendbird/chat'; import { GroupChannelModule } from '@sendbird/chat/groupChannel'; import { OpenChannelModule } from '@sendbird/chat/openChannel'; import type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation'; import { SBUConfig } from '@sendbird/uikit-tools'; import { PartialDeep, SendbirdChatSDK, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdReactedUserInfo, SendbirdUser } from '@sendbird/uikit-utils'; import { type SBUHandlers } from '../contexts/SBUHandlersCtx'; import type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx'; import type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig'; import { MentionConfigInterface } from '../libs/MentionConfig'; import { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig'; import type { StringSet } from '../localization/StringSet.type'; import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types'; import { ErrorBoundaryProps, LocalCacheStorage } from '../types'; export declare const SendbirdUIKit: Readonly<{ VERSION: "3.9.0"; PLATFORM: string; DEFAULT: { AUTO_PUSH_TOKEN_REGISTRATION: boolean; USE_USER_ID_FOR_NICKNAME: boolean; IMAGE_COMPRESSION: boolean; }; }>; export type ChatOmittedInitParams = SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>; export type SendbirdUIKitContainerProps = React.PropsWithChildren<{ appId: string; platformServices: { file: FileServiceInterface; notification: NotificationServiceInterface; clipboard: ClipboardServiceInterface; media: MediaServiceInterface; player: PlayerServiceInterface; recorder: RecorderServiceInterface; }; chatOptions: Partial<ChatOmittedInitParams> & Partial<ChatRelatedFeaturesInUIKit> & { onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK; localCacheStorage: LocalCacheStorage; }; uikitOptions?: PartialDeep<{ common: SBUConfig['common']; groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & { /** * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit} */ enableReactionsSupergroup: never; }; groupChannelList: SBUConfig['groupChannel']['channelList']; groupChannelSettings: SBUConfig['groupChannel']['setting']; openChannel: SBUConfig['openChannel']['channel']; }>; localization?: { stringSet?: StringSet; }; styles?: { theme?: UIKitTheme; statusBarTranslucent?: boolean; defaultHeaderTitleAlign?: 'left' | 'center'; defaultHeaderHeight?: number; HeaderComponent?: HeaderStyleContextType['HeaderComponent']; }; errorBoundary?: { disabled?: boolean; onError?: (props: ErrorBoundaryProps) => void; ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode; }; handlers?: Partial<SBUHandlers>; toast?: { dismissTimeout?: number; }; userProfile?: { onCreateChannel: (channel: SendbirdGroupChannel) => void; onBeforeCreateChannel?: (channelParams: SendbirdGroupChannelCreateParams, users: SendbirdUser[] | SendbirdMember[] | SendbirdReactedUserInfo[]) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>; }; reaction?: { onPressUserProfile?: (user: SendbirdReactedUserInfo) => void; }; userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>; imageCompression?: Partial<ImageCompressionConfigInterface>; voiceMessage?: PartialDeep<VoiceMessageConfigInterface>; }>; declare const SendbirdUIKitContainer: (props: SendbirdUIKitContainerProps) => React.JSX.Element; export default SendbirdUIKitContainer;