@vchatcloud/vue-ui-kit
Version:
VChatCloud UI Kit for vue integration
113 lines (112 loc) • 3.25 kB
TypeScript
import { ChannelMessageEvent } from '@vchatcloud/sdk';
export interface VChatCloudAppProps {
/**
* 설치형 솔루션을 사용하시는 경우 사용중이신 서버의 주소를 입력해주세요.
*/
url?: string;
/**
* CMS에서 사용하는 계정의 이메일입니다.
*/
email?: string;
/**
* 접속한 채팅방의 `roomId`(=`channelKey`)입니다.
*/
roomId: string;
/**
* 유저의 고유 키 입니다.
*/
clientKey: string;
/**
* 유저의 닉네입입니다.
*/
nickName: string;
/**
* 유저의 등급입니다.
*/
grade?: string;
/**
* 유저의 정보로, 보통 JSON형태를 사용합니다.
*
* 필요한 데이터를 추가로 저장할 수 있습니다.
*/
userInfo?: unknown;
/**
* 세션 종류를 지정합니다.
*
* - `login` : 로그인 페이지를 사용해서 유저가 설정한 데이터로 접속합니다.
* - `parameter` : 지정한 파라미터로 바로 접속합니다.
* - `private` : 지정한 파라미터로 비밀채팅방에 접속합니다.
*/
sessionType: SessionType;
/**
* 지정할 곳의 `Selector`를 입력하거나, `DOMElement`객체를 전달합니다.
*
* 새 비밀 채팅방을 입장할 경우 `createPortal`을 통해
* 비밀채팅방을 표시할 곳을 설정합니다.
*
* 지정하지 않은 상태에서 비밀채팅방을 생성하거나 입장하는 경우
* 오류가 발생할 수 있습니다.
*/
privateContainer?: string | HTMLElement;
/**
* 기본적으로 제공되는 logo가 아닌 다른 logo를 사용하고 싶다면 `URL`을 입력하세요.
*/
logo?: string;
/**
* logo 하단 설명을 바꾸시려면 작성하세요.
*/
description?: string;
/**
* footer 내용을 변경하려면 작성하세요.
*/
footerDescription?: string;
}
export interface VChatCloudFile {
id: string;
name: string;
type: string;
size: number;
expire: string;
}
export interface VChatCloudAPIFile {
fileNm: string;
fileSize: number;
expire: string;
fileKey: string;
fileSizeText: string;
fileExt: string;
originFileNm: string;
}
export interface ToastProps {
message: string;
type: "error" | "warning" | "info";
showTime?: number;
id?: string;
}
export declare enum MessageEventType {
Notice = "Notice",
Whisper = "Whisper",
Message = "Message",
Image = "Image",
Join = "Join",
Leave = "Leave",
Emoticon = "Emoticon",
File = "File",
Video = "Video",
Kick = "Kick",
UnKick = "UnKick",
Mute = "Mute",
UnMute = "UnMute",
Custom = "Custom",
Invite = "Invite",
PersonalKick = "PersonalKick",
PersonalMute = "PersonalMute",
PersonalUnMute = "PersonalUnMute",
Duplicate = "Duplicate"
}
export type ExtendedMessage = ChannelMessageEvent & {
type: MessageEventType;
};
export type FileType = MessageEventType.Image | MessageEventType.Video | MessageEventType.File;
export type SessionType = "login" | "parameter" | "private";
export type ThemeType = "Light" | "Dark";