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