- Start met Mobiele versie van de chat client.
This commit is contained in:
@@ -21,48 +21,77 @@ window.Vue = { createApp };
|
||||
window.marked = marked;
|
||||
|
||||
// Gebruik barrel export voor componenten
|
||||
import * as Components from '../../../eveai_chat_client/static/assets/js/components/index.js';
|
||||
import * as Components from '../../../eveai_chat_client/static/assets/vue-components/index.js';
|
||||
|
||||
// Maak Components globaal beschikbaar voor debugging
|
||||
window.Components = Components;
|
||||
console.log('Components loaded:', Object.keys(Components));
|
||||
|
||||
// Main chat application - moet als laatste worden geladen
|
||||
import { ChatApp } from '../../../eveai_chat_client/static/assets/js/ChatApp.js';
|
||||
import ChatApp from '../../../eveai_chat_client/static/assets/vue-components/ChatApp.vue';
|
||||
|
||||
// Wacht tot het document volledig is geladen voordat we Vue initialiseren
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
console.log('Initializing Chat Application');
|
||||
|
||||
// Check of #app element bestaat
|
||||
const appElement = document.getElementById('app');
|
||||
if (!appElement) {
|
||||
console.error('DOM element #app not found. Cannot initialize Vue application.');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('DOM element #app exists:', appElement);
|
||||
|
||||
try {
|
||||
// Maak de Vue applicatie aan
|
||||
const app = createApp(ChatApp);
|
||||
|
||||
// Registreer alle componenten globaal
|
||||
for (const [name, component] of Object.entries(Components)) {
|
||||
app.component(name, component);
|
||||
// Mount SideBar component to sidebar-container
|
||||
const sidebarContainer = document.getElementById('sidebar-container');
|
||||
if (sidebarContainer && Components.SideBar) {
|
||||
const sidebarApp = createApp(Components.SideBar, {
|
||||
tenantMake: window.chatConfig?.tenantMake || { name: 'EveAI', logo_url: '' },
|
||||
explanationText: window.chatConfig?.explanationText || '',
|
||||
initialLanguage: window.chatConfig?.language || 'en',
|
||||
supportedLanguageDetails: window.chatConfig?.supportedLanguageDetails || {},
|
||||
allowedLanguages: window.chatConfig?.allowedLanguages || ['nl', 'en', 'fr', 'de'],
|
||||
apiPrefix: window.chatConfig?.apiPrefix || ''
|
||||
});
|
||||
|
||||
// Registreer componenten voor sidebar app
|
||||
for (const [name, component] of Object.entries(Components)) {
|
||||
sidebarApp.component(name, component);
|
||||
}
|
||||
|
||||
sidebarApp.mount('#sidebar-container');
|
||||
console.log('SideBar mounted successfully');
|
||||
}
|
||||
|
||||
// Voeg de IconManagerMixin toe voor alle componenten
|
||||
app.mixin(IconManagerMixin);
|
||||
// Mount MobileHeader component to mobile-header-container
|
||||
const mobileHeaderContainer = document.getElementById('mobile-header-container');
|
||||
if (mobileHeaderContainer && Components.MobileHeader) {
|
||||
const mobileHeaderApp = createApp(Components.MobileHeader, {
|
||||
tenantMake: window.chatConfig?.tenantMake || { name: 'EveAI', logo_url: '' },
|
||||
initialLanguage: window.chatConfig?.language || 'en',
|
||||
supportedLanguageDetails: window.chatConfig?.supportedLanguageDetails || {},
|
||||
allowedLanguages: window.chatConfig?.allowedLanguages || ['nl', 'en', 'fr', 'de'],
|
||||
apiPrefix: window.chatConfig?.apiPrefix || ''
|
||||
});
|
||||
|
||||
// Registreer componenten voor mobile header app
|
||||
for (const [name, component] of Object.entries(Components)) {
|
||||
mobileHeaderApp.component(name, component);
|
||||
}
|
||||
|
||||
mobileHeaderApp.mount('#mobile-header-container');
|
||||
console.log('MobileHeader mounted successfully');
|
||||
}
|
||||
|
||||
// Mount de applicatie op #app
|
||||
const mountedApp = app.mount('#app');
|
||||
// Mount ChatApp to the chat container
|
||||
const chatContainer = document.querySelector('.chat-container');
|
||||
if (chatContainer) {
|
||||
const chatApp = createApp(ChatApp);
|
||||
|
||||
// Registreer alle componenten globaal voor chat app
|
||||
for (const [name, component] of Object.entries(Components)) {
|
||||
chatApp.component(name, component);
|
||||
}
|
||||
|
||||
// Bewaar een referentie naar de app voor debugging
|
||||
window.__vueApp = app;
|
||||
chatApp.mount('.chat-container');
|
||||
console.log('ChatApp mounted successfully');
|
||||
}
|
||||
|
||||
console.log('Vue app mounted successfully');
|
||||
console.log('All Vue apps mounted successfully');
|
||||
} catch (error) {
|
||||
console.error('Error initializing Vue application:', error);
|
||||
console.error('Error initializing Vue applications:', error);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user