UNPKG

@sendbird/uikit-react

Version:

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

74 lines (73 loc) 2.43 kB
import { MutableRefObject } from 'react'; import type { User } from '@sendbird/chat'; import type { Member } from '@sendbird/chat/groupChannel'; import type { AdminMessage, FileMessage, MultipleFilesMessage, UserMessage, Thumbnail } from '@sendbird/chat/message'; import { CoreMessageType } from './utils'; import { MessageProps } from './modules/GroupChannel/components/Message/MessageView'; export type ReplyType = 'NONE' | 'QUOTE_REPLY' | 'THREAD'; export type Nullable<T> = T | null; export type SpaceFromTriggerType = { x: number; y: number; top?: number; left?: number; height?: number; }; export interface UserListQuery { hasNext?: boolean; next(): Promise<Array<User>>; get isLoading(): boolean; } export declare enum TypingIndicatorType { Text = "text", Bubble = "bubble" } export interface RenderUserProfileProps { user: User | Member; currentUserId: string; close(): void; avatarRef: MutableRefObject<any>; } export interface SendBirdProviderConfig { logLevel?: 'debug' | 'warning' | 'error' | 'info' | 'all' | Array<string>; userMention?: { maxMentionCount?: number; maxSuggestionCount?: number; }; isREMUnitEnabled?: boolean; } export interface ClientMessage { reqId: string; file?: File; localUrl?: string; _sender: User; } export interface RenderMessageProps { message: CoreMessageType; chainTop: boolean; chainBottom: boolean; } export type RenderMessageParamsType = Omit<MessageProps, 'renderMessage'>; export interface RenderCustomSeparatorProps { message: CoreMessageType; } export interface ClientUserMessage extends UserMessage, ClientMessage { } export interface ClientFileMessage extends FileMessage, ClientMessage { } export interface ClientAdminMessage extends AdminMessage, ClientMessage { } export interface ClientMultipleFilesMessage extends MultipleFilesMessage, ClientMessage { } export type EveryMessage = ClientUserMessage | ClientFileMessage | ClientMultipleFilesMessage | ClientAdminMessage; export type ClientSentMessages = ClientUserMessage | ClientFileMessage | ClientMultipleFilesMessage; export interface UploadedFileInfoWithUpload { fileName?: string; fileSize?: number; mimeType?: string; thumbnails?: Thumbnail[]; url?: string; isUploaded?: boolean; } export type SendbirdTheme = 'light' | 'dark'; export type HTMLTextDirection = 'ltr' | 'rtl';