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