1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import TUIChatServer from './server';
- import TUIChatComponent from './index.vue';
- import Face from './plugin-components/face';
- import Image from './plugin-components/image';
- import Video from './plugin-components/video';
- import File from './plugin-components/file';
- import Forward from './plugin-components/forward';
- import Words from './plugin-components/words';
- import Evaluate from './plugin-components/evaluate';
- import TypingHeader from './plugin-components/typingHeader';
- import ReadReceiptDialog from './plugin-components/readReceiptDialog';
- import Replies from './plugin-components/replies';
- import Call from './plugin-components/call';
- import ImagePreviewer from './plugin-components/imagePreviewer';
- import MessageInput from './message-input';
- let sendComponents: any = {
- Face,
- Image,
- Video,
- File,
- Evaluate,
- Words,
- Call,
- };
- export const messageComponents: any = {
- Forward,
- };
- export const otherComponents: any = {
- TypingHeader,
- ReadReceiptDialog,
- Replies,
- ImagePreviewer,
- MessageInput
- };
- export function getComponents(type: string) {
- let options: any = {};
- switch (type) {
- case 'send':
- options = sendComponents;
- break;
- case 'message':
- options = messageComponents;
- break;
- case 'other':
- options = otherComponents;
- break;
- default:
- break;
- }
- return options;
- }
- const install = (app: any) => {
- const components: any = { ...sendComponents, ...messageComponents, ...otherComponents };
- Object.keys(components).forEach((name: any) => {
- components[name].TUIServer = TUIChat.server;
- });
- TUIChatComponent.TUIServer = TUIChat.server;
- TUIChatComponent.components = { ...TUIChatComponent.components, ...components };
- app.component(TUIChat.name, TUIChatComponent);
- };
- const plugin = (TUICore: any) => {
- (TUIChat.server as any) = new TUIChatServer(TUICore);
- TUICore.component(TUIChat.name, TUIChat);
- return TUIChat;
- };
- const setPluginComponents = (Components: any) => {
- sendComponents = { ...sendComponents, ...Components };
- };
- const removePluginComponents = (nameList: Array<string>) => {
- nameList.map((name: string) => {
- delete sendComponents[name];
- return name;
- });
- };
- const TUIChat = {
- name: 'TUIChat',
- component: TUIChatComponent,
- server: TUIChatServer,
- sendComponents,
- messageComponents,
- otherComponents,
- install,
- plugin,
- setPluginComponents,
- removePluginComponents,
- };
- export default TUIChat;
|