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