UNPKG

@vchatcloud/vue-ui-kit

Version:

VChatCloud UI Kit for vue integration

113 lines (112 loc) 3.25 kB
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";