@tencentcloud/chat-uikit-uniapp
Version:
TUIKit 是基于 IM SDK 实现的一套 UI 组件,其包含会话、聊天、群组、个人资料等功能,基于这些精心设计的 UI 组件,您可以快速构建优雅的、可靠的、可扩展的 Chat 应用。
136 lines (121 loc) • 3.23 kB
text/typescript
import imageIconLight from '../../../../assets/icon/image-light.svg';
import imageIconDark from '../../../../assets/icon/image-dark.svg';
import imageUniIcon from '../../../../assets/icon/image-uni.png';
import cameraUniIcon from '../../../../assets/icon/camera-uni.png';
import videoIconLight from '../../../../assets/icon/video-light.svg';
import videoIconDark from '../../../../assets/icon/video-dark.svg';
import videoUniIcon from '../../../../assets/icon/video-uni.png';
import fileIconLight from '../../../../assets/icon/file-light.svg';
import fileIconDark from '../../../../assets/icon/file-dark.svg';
export const ICON_SIZE_CONFIG = {
WEB: {
WIDTH: '20px',
HEIGHT: '18px',
},
UNI: {
WIDTH: '32px',
HEIGHT: '25px',
},
};
export const TOOLBAR_ICON_MAP = {
IMAGE_WEB_LIGHT: imageIconLight,
IMAGE_WEB_DARK: imageIconDark,
IMAGE_UNI: imageUniIcon,
CAMERA_UNI: cameraUniIcon,
VIDEO_WEB_LIGHT: videoIconLight,
VIDEO_WEB_DARK: videoIconDark,
VIDEO_UNI: videoUniIcon,
FILE_WEB_LIGHT: fileIconLight,
FILE_WEB_DARK: fileIconDark,
};
export enum UploadType {
IMAGE = 'IMAGE',
VIDEO = 'VIDEO',
FILE = 'FILE',
ALBUM = 'ALBUM',
CAMERA = 'CAMERA',
}
export enum SourceType {
ALBUM = 'album',
CAMERA = 'camera',
}
export enum PlatformType {
WEB = 'WEB',
UNI = 'UNI',
}
export enum ThemeType {
LIGHT = 'light',
DARK = 'dark',
}
export enum MediaType {
IMAGE = 'image',
VIDEO = 'video',
FILE = 'file',
}
export enum ToolbarTitle {
IMAGE = '图片',
PHOTO = '照片',
VIDEO = '视频',
FILE = '文件',
CAMERA = '拍照',
RECORD = '录制',
SHOOT = '拍摄',
}
export const TOOLBAR_DISPLAY_CONFIG = {
[UploadType.IMAGE]: {
[PlatformType.WEB]: {
title: ToolbarTitle.IMAGE,
getIcon: (theme: string) => theme === ThemeType.DARK ? TOOLBAR_ICON_MAP.IMAGE_WEB_DARK : TOOLBAR_ICON_MAP.IMAGE_WEB_LIGHT,
},
[PlatformType.UNI]: {
title: ToolbarTitle.PHOTO,
icon: TOOLBAR_ICON_MAP.IMAGE_UNI,
},
},
[UploadType.VIDEO]: {
[PlatformType.WEB]: {
title: ToolbarTitle.VIDEO,
getIcon: (theme: string) => theme === ThemeType.DARK ? TOOLBAR_ICON_MAP.VIDEO_WEB_DARK : TOOLBAR_ICON_MAP.VIDEO_WEB_LIGHT,
},
[PlatformType.UNI]: {
title: ToolbarTitle.VIDEO,
icon: TOOLBAR_ICON_MAP.VIDEO_UNI,
},
},
[UploadType.FILE]: {
[PlatformType.WEB]: {
title: ToolbarTitle.FILE,
getIcon: (theme: string) => theme === ThemeType.DARK ? TOOLBAR_ICON_MAP.FILE_WEB_DARK : TOOLBAR_ICON_MAP.FILE_WEB_LIGHT,
},
},
[UploadType.ALBUM]: {
[PlatformType.UNI]: {
title: ToolbarTitle.PHOTO,
icon: TOOLBAR_ICON_MAP.IMAGE_UNI,
},
},
[UploadType.CAMERA]: {
[PlatformType.UNI]: {
title: ToolbarTitle.SHOOT,
icon: TOOLBAR_ICON_MAP.CAMERA_UNI,
},
},
} as const;
export const MEDIA_CHOOSE_CONFIG = {
IMAGE: {
COUNT: 1,
MEDIA_TYPE: [MediaType.IMAGE],
SIZE_TYPE: ['original', 'compressed'],
},
VIDEO: {
COUNT: 1,
MEDIA_TYPE: [MediaType.VIDEO],
MAX_DURATION: 60,
COMPRESSED: false,
},
MIXED: {
COUNT: 1,
MEDIA_TYPE: [MediaType.IMAGE, MediaType.VIDEO],
SIZE_TYPE: ['original', 'compressed'],
},
};