Open-Generative-AI/src/main.js
Anil Matcha e832e9d389 feat: add Workflows and Agents tabs to Electron vanilla JS build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 02:22:35 +05:30

59 lines
1.8 KiB
JavaScript

import './style.css';
import { Header } from './components/Header.js';
import { ImageStudio } from './components/ImageStudio.js';
const app = document.querySelector('#app');
let contentArea;
// Router
function navigate(page) {
if (!contentArea) return;
contentArea.innerHTML = '';
if (page === 'image') {
contentArea.appendChild(ImageStudio());
} else if (page === 'video') {
import('./components/VideoStudio.js').then(({ VideoStudio }) => {
contentArea.appendChild(VideoStudio());
});
} else if (page === 'cinema') {
import('./components/CinemaStudio.js').then(({ CinemaStudio }) => {
contentArea.appendChild(CinemaStudio());
});
} else if (page === 'lipsync') {
import('./components/LipSyncStudio.js').then(({ LipSyncStudio }) => {
contentArea.appendChild(LipSyncStudio());
});
} else if (page === 'workflows') {
import('./components/WorkflowStudio.js').then(({ WorkflowStudio }) => {
contentArea.appendChild(WorkflowStudio());
});
} else if (page === 'agents') {
import('./components/AgentStudio.js').then(({ AgentStudio }) => {
contentArea.appendChild(AgentStudio());
});
}
}
app.innerHTML = '';
// Pass navigate to Header so links work
app.appendChild(Header(navigate));
contentArea = document.createElement('main');
contentArea.id = 'content-area';
contentArea.className = 'flex-1 relative w-full overflow-hidden flex flex-col bg-app-bg';
app.appendChild(contentArea);
// Initial Route
navigate('image');
// Event Listener for Navigation
window.addEventListener('navigate', (e) => {
if (e.detail.page === 'settings') {
import('./components/SettingsModal.js').then(({ SettingsModal }) => {
document.body.appendChild(SettingsModal());
});
} else {
navigate(e.detail.page);
}
});