mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-30 18:47:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Vue
		
	
	
		
			Executable File
		
	
	
	
	
| <template>
 | |
|   <div id="app" class="woot-widget-wrap">
 | |
|     <router-view />
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import { mapActions } from 'vuex';
 | |
| import { setHeader } from 'widget/helpers/axios';
 | |
| import { IFrameHelper } from 'widget/helpers/utils';
 | |
| 
 | |
| export default {
 | |
|   name: 'App',
 | |
|   mounted() {
 | |
|     if (IFrameHelper.isIFrame()) {
 | |
|       IFrameHelper.sendMessage({
 | |
|         event: 'loaded',
 | |
|         config: {
 | |
|           authToken: window.authToken,
 | |
|           channelConfig: window.chatwootWebChannel,
 | |
|         },
 | |
|       });
 | |
|       setHeader('X-Auth-Token', window.authToken);
 | |
|     }
 | |
|     this.setWidgetColor(window.chatwootWebChannel);
 | |
| 
 | |
|     window.addEventListener('message', e => {
 | |
|       if (
 | |
|         typeof e.data !== 'string' ||
 | |
|         e.data.indexOf('chatwoot-widget:') !== 0
 | |
|       ) {
 | |
|         return;
 | |
|       }
 | |
|       const message = JSON.parse(e.data.replace('chatwoot-widget:', ''));
 | |
|       if (message.event === 'config-set') {
 | |
|         this.fetchOldConversations();
 | |
|       } else if (message.event === 'widget-visible') {
 | |
|         this.scrollConversationToBottom();
 | |
|       } else if (message.event === 'set-current-url') {
 | |
|         window.refererURL = message.refererURL;
 | |
|       }
 | |
|     });
 | |
|   },
 | |
|   methods: {
 | |
|     ...mapActions('appConfig', ['setWidgetColor']),
 | |
|     ...mapActions('conversation', ['fetchOldConversations']),
 | |
|     scrollConversationToBottom() {
 | |
|       const container = this.$el.querySelector('.conversation-wrap');
 | |
|       container.scrollTop = container.scrollHeight;
 | |
|     },
 | |
|   },
 | |
| };
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| @import '~widget/assets/scss/woot.scss';
 | |
| </style>
 | 
