@sendbird/uikit-react
Version:
Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
35 lines (34 loc) • 1.07 kB
TypeScript
import { MouseEvent } from 'react';
export declare const ViewerTypes: {
readonly SINGLE: "SINGLE";
readonly MULTI: "MULTI";
};
export type ViewerType = keyof typeof ViewerTypes;
export interface SenderInfo {
profileUrl: string;
nickname: string;
}
export interface FileInfo {
name: string;
type: string;
url: string;
}
export interface BaseViewer {
onClose: (e: React.MouseEvent | React.KeyboardEvent) => void;
}
export interface SingleFileViewer extends SenderInfo, FileInfo, BaseViewer {
viewerType?: typeof ViewerTypes.SINGLE;
isByMe?: boolean;
disableDelete?: boolean;
onDelete: (e: MouseEvent) => void;
onDownloadClick?: (e: MouseEvent) => Promise<void>;
}
export interface MultiFilesViewer extends SenderInfo, BaseViewer {
viewerType: typeof ViewerTypes.MULTI;
fileInfoList: FileInfo[];
currentIndex: number;
onClickLeft: () => void;
onClickRight: () => void;
onDownloadClick?: (e: MouseEvent) => Promise<void>;
}
export type FileViewerComponentProps = SingleFileViewer | MultiFilesViewer;