Refactor Site Builder Integration and Update Docker Configuration

- Merged the site builder functionality into the main app, enhancing the SiteBuilderWizard component with new steps and improved UI.
- Updated the Docker Compose configuration by removing the separate site builder service and integrating its functionality into the igny8_sites service.
- Enhanced Vite configuration to support code-splitting for builder routes, optimizing loading times.
- Updated package dependencies to include new libraries for state management and form handling.
This commit is contained in:
IGNY8 VPS (Salman)
2025-11-18 10:35:30 +00:00
parent 8508af37c7
commit 3ea519483d
19 changed files with 1637 additions and 91 deletions

View File

@@ -1,16 +1,52 @@
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import SiteRenderer from './pages/SiteRenderer';
import { lazy, Suspense } from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import ProtectedRoute from './shared/ProtectedRoute';
import BuilderLayout from './builder/components/layout/BuilderLayout';
// Lazy load builder pages (code-split to avoid loading in public sites)
const WizardPage = lazy(() => import('./builder/pages/wizard/WizardPage'));
const PreviewCanvas = lazy(() => import('./builder/pages/preview/PreviewCanvas'));
const SiteDashboard = lazy(() => import('./builder/pages/dashboard/SiteDashboard'));
// Renderer pages (load immediately for public sites)
const SiteRenderer = lazy(() => import('./renderer/pages/SiteRenderer'));
// Loading component
const LoadingFallback = () => (
<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '100vh' }}>
<div>Loading...</div>
</div>
);
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/:siteId/*" element={<SiteRenderer />} />
<Route path="/" element={<div>IGNY8 Sites Renderer</div>} />
</Routes>
<Suspense fallback={<LoadingFallback />}>
<Routes>
{/* Public Site Renderer Routes (No Auth) */}
<Route path="/:siteId/*" element={<SiteRenderer />} />
<Route path="/" element={<div>IGNY8 Sites Renderer</div>} />
{/* Builder Routes (Auth Required) */}
<Route
path="/builder/*"
element={
<ProtectedRoute>
<BuilderLayout>
<Routes>
<Route path="/" element={<WizardPage />} />
<Route path="preview" element={<PreviewCanvas />} />
<Route path="dashboard" element={<SiteDashboard />} />
<Route path="*" element={<Navigate to="/builder" replace />} />
</Routes>
</BuilderLayout>
</ProtectedRoute>
}
/>
</Routes>
</Suspense>
</BrowserRouter>
);
}
export default App;