UNPKG

@gathertown/uikit-react-native

Version:

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

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