logo and architecture fixes

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-09 14:28:44 +00:00
parent 4dd129b863
commit 5fb3687854
16 changed files with 651 additions and 631 deletions

View File

@@ -182,6 +182,8 @@ export default function App() {
<LoadingStateMonitor />
<HelmetProvider>
<ScrollToTop />
{/* CRITICAL FIX: Move Suspense OUTSIDE Routes to prevent Router context loss during HMR */}
<Suspense fallback={<div className="flex items-center justify-center min-h-screen"><div className="text-lg">Loading...</div></div>}>
<Routes>
{/* Auth Routes - Public */}
<Route path="/signin" element={<SignIn />} />
@@ -197,642 +199,253 @@ export default function App() {
}
>
{/* Dashboard */}
<Route index path="/" element={
<Suspense fallback={null}>
<Home />
</Suspense>
} />
<Route index path="/" element={<Home />} />
{/* Planner Module - Redirect dashboard to keywords */}
<Route path="/planner" element={<Navigate to="/planner/keywords" replace />} />
<Route path="/planner/keywords" element={
<Suspense fallback={null}>
<ModuleGuard module="planner">
<Keywords />
</ModuleGuard>
</Suspense>
<ModuleGuard module="planner">
<Keywords />
</ModuleGuard>
} />
<Route path="/planner/clusters" element={
<Suspense fallback={null}>
<ModuleGuard module="planner">
<Clusters />
</ModuleGuard>
</Suspense>
<ModuleGuard module="planner">
<Clusters />
</ModuleGuard>
} />
<Route path="/planner/clusters/:id" element={
<Suspense fallback={null}>
<ModuleGuard module="planner">
<ClusterDetail />
</ModuleGuard>
</Suspense>
<ModuleGuard module="planner">
<ClusterDetail />
</ModuleGuard>
} />
<Route path="/planner/ideas" element={
<Suspense fallback={null}>
<ModuleGuard module="planner">
<Ideas />
</ModuleGuard>
</Suspense>
<ModuleGuard module="planner">
<Ideas />
</ModuleGuard>
} />
{/* Writer Module - Redirect dashboard to tasks */}
<Route path="/writer" element={<Navigate to="/writer/tasks" replace />} />
<Route path="/writer/tasks" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<Tasks />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<Tasks />
</ModuleGuard>
} />
{/* Writer Content Routes - Order matters: list route must come before detail route */}
<Route path="/writer/content" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<Content />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<Content />
</ModuleGuard>
} />
{/* Content detail view - matches /writer/content/:id (e.g., /writer/content/10) */}
<Route path="/writer/content/:id" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<ContentView />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<ContentView />
</ModuleGuard>
} />
<Route path="/writer/drafts" element={<Navigate to="/writer/content" replace />} />
<Route path="/writer/images" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<Images />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<Images />
</ModuleGuard>
} />
<Route path="/writer/review" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<Review />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<Review />
</ModuleGuard>
} />
<Route path="/writer/published" element={
<Suspense fallback={null}>
<ModuleGuard module="writer">
<Published />
</ModuleGuard>
</Suspense>
<ModuleGuard module="writer">
<Published />
</ModuleGuard>
} />
{/* Automation Module */}
<Route path="/automation" element={
<Suspense fallback={null}>
<AutomationPage />
</Suspense>
} />
<Route path="/automation" element={<AutomationPage />} />
{/* Linker Module - Redirect dashboard to content */}
<Route path="/linker" element={<Navigate to="/linker/content" replace />} />
<Route path="/linker/content" element={
<Suspense fallback={null}>
<ModuleGuard module="linker">
<LinkerContentList />
</ModuleGuard>
</Suspense>
<ModuleGuard module="linker">
<LinkerContentList />
</ModuleGuard>
} />
{/* Optimizer Module - Redirect dashboard to content */}
<Route path="/optimizer" element={<Navigate to="/optimizer/content" replace />} />
<Route path="/optimizer/content" element={
<Suspense fallback={null}>
<ModuleGuard module="optimizer">
<OptimizerContentSelector />
</ModuleGuard>
</Suspense>
<ModuleGuard module="optimizer">
<OptimizerContentSelector />
</ModuleGuard>
} />
<Route path="/optimizer/analyze/:id" element={
<Suspense fallback={null}>
<ModuleGuard module="optimizer">
<AnalysisPreview />
</ModuleGuard>
</Suspense>
<ModuleGuard module="optimizer">
<AnalysisPreview />
</ModuleGuard>
} />
{/* Thinker Module */}
{/* Thinker Module - Redirect dashboard to prompts */}
<Route path="/thinker" element={<Navigate to="/thinker/prompts" replace />} />
<Route path="/thinker/prompts" element={
<Suspense fallback={null}>
<ModuleGuard module="thinker">
<Prompts />
</ModuleGuard>
</Suspense>
<ModuleGuard module="thinker">
<Prompts />
</ModuleGuard>
} />
<Route path="/thinker/author-profiles" element={
<Suspense fallback={null}>
<ModuleGuard module="thinker">
<AuthorProfiles />
</ModuleGuard>
</Suspense>
<ModuleGuard module="thinker">
<AuthorProfiles />
</ModuleGuard>
} />
<Route path="/thinker/profile" element={
<Suspense fallback={null}>
<ModuleGuard module="thinker">
<ThinkerProfile />
</ModuleGuard>
</Suspense>
<ModuleGuard module="thinker">
<ThinkerProfile />
</ModuleGuard>
} />
<Route path="/thinker/strategies" element={
<Suspense fallback={null}>
<ModuleGuard module="thinker">
<Strategies />
</ModuleGuard>
</Suspense>
<ModuleGuard module="thinker">
<Strategies />
</ModuleGuard>
} />
<Route path="/thinker/image-testing" element={
<Suspense fallback={null}>
<ModuleGuard module="thinker">
<ImageTesting />
</ModuleGuard>
</Suspense>
<ModuleGuard module="thinker">
<ImageTesting />
</ModuleGuard>
} />
{/* Billing Module */}
<Route path="/billing" element={<Navigate to="/billing/overview" replace />} />
<Route path="/billing/overview" element={
<Suspense fallback={null}>
<CreditsAndBilling />
</Suspense>
} />
<Route path="/billing/credits" element={
<Suspense fallback={null}>
<Credits />
</Suspense>
} />
<Route path="/billing/transactions" element={
<Suspense fallback={null}>
<Transactions />
</Suspense>
} />
<Route path="/billing/usage" element={
<Suspense fallback={null}>
<Usage />
</Suspense>
} />
<Route path="/billing/overview" element={<CreditsAndBilling />} />
<Route path="/billing/credits" element={<Credits />} />
<Route path="/billing/transactions" element={<Transactions />} />
<Route path="/billing/usage" element={<Usage />} />
{/* Account Section - Billing & Management Pages */}
<Route path="/account/plans" element={
<Suspense fallback={null}>
<PlansAndBillingPage />
</Suspense>
} />
<Route path="/account/purchase-credits" element={
<Suspense fallback={null}>
<PurchaseCreditsPage />
</Suspense>
} />
<Route path="/account/settings" element={
<Suspense fallback={null}>
<AccountSettingsPage />
</Suspense>
} />
<Route path="/account/team" element={
<Suspense fallback={null}>
<TeamManagementPage />
</Suspense>
} />
<Route path="/account/usage" element={
<Suspense fallback={null}>
<UsageAnalyticsPage />
</Suspense>
} />
<Route path="/account/plans" element={<PlansAndBillingPage />} />
<Route path="/account/purchase-credits" element={<PurchaseCreditsPage />} />
<Route path="/account/settings" element={<AccountSettingsPage />} />
<Route path="/account/team" element={<TeamManagementPage />} />
<Route path="/account/usage" element={<UsageAnalyticsPage />} />
{/* Admin Routes */}
{/* Admin Dashboard */}
<Route path="/admin/dashboard" element={
<Suspense fallback={null}>
<AdminSystemDashboard />
</Suspense>
} />
<Route path="/admin/dashboard" element={<AdminSystemDashboard />} />
{/* Admin Account Management */}
<Route path="/admin/accounts" element={
<Suspense fallback={null}>
<AdminAllAccountsPage />
</Suspense>
} />
<Route path="/admin/subscriptions" element={
<Suspense fallback={null}>
<AdminSubscriptionsPage />
</Suspense>
} />
<Route path="/admin/account-limits" element={
<Suspense fallback={null}>
<AdminAccountLimitsPage />
</Suspense>
} />
<Route path="/admin/accounts" element={<AdminAllAccountsPage />} />
<Route path="/admin/subscriptions" element={<AdminSubscriptionsPage />} />
<Route path="/admin/account-limits" element={<AdminAccountLimitsPage />} />
{/* Admin Billing Administration */}
<Route path="/admin/billing" element={
<Suspense fallback={null}>
<AdminBilling />
</Suspense>
} />
<Route path="/admin/invoices" element={
<Suspense fallback={null}>
<AdminAllInvoicesPage />
</Suspense>
} />
<Route path="/admin/payments" element={
<Suspense fallback={null}>
<AdminAllPaymentsPage />
</Suspense>
} />
<Route path="/admin/payments/approvals" element={
<Suspense fallback={null}>
<PaymentApprovalPage />
</Suspense>
} />
<Route path="/admin/credit-packages" element={
<Suspense fallback={null}>
<AdminCreditPackagesPage />
</Suspense>
} />
<Route path="/admin/credit-costs" element={
<Suspense fallback={null}>
<AdminCreditCostsPage />
</Suspense>
} />
<Route path="/admin/billing" element={<AdminBilling />} />
<Route path="/admin/invoices" element={<AdminAllInvoicesPage />} />
<Route path="/admin/payments" element={<AdminAllPaymentsPage />} />
<Route path="/admin/payments/approvals" element={<PaymentApprovalPage />} />
<Route path="/admin/credit-packages" element={<AdminCreditPackagesPage />} />
<Route path="/admin/credit-costs" element={<AdminCreditCostsPage />} />
{/* Admin User Administration */}
<Route path="/admin/users" element={
<Suspense fallback={null}>
<AdminAllUsersPage />
</Suspense>
} />
<Route path="/admin/roles" element={
<Suspense fallback={null}>
<AdminRolesPermissionsPage />
</Suspense>
} />
<Route path="/admin/activity-logs" element={
<Suspense fallback={null}>
<AdminActivityLogsPage />
</Suspense>
} />
<Route path="/admin/users" element={<AdminAllUsersPage />} />
<Route path="/admin/roles" element={<AdminRolesPermissionsPage />} />
<Route path="/admin/activity-logs" element={<AdminActivityLogsPage />} />
{/* Admin System Configuration */}
<Route path="/admin/settings/system" element={
<Suspense fallback={null}>
<AdminSystemSettingsPage />
</Suspense>
} />
<Route path="/admin/settings/system" element={<AdminSystemSettingsPage />} />
{/* Admin Monitoring */}
<Route path="/admin/monitoring/health" element={
<Suspense fallback={null}>
<AdminSystemHealthPage />
</Suspense>
} />
<Route path="/admin/monitoring/api" element={
<Suspense fallback={null}>
<AdminAPIMonitorPage />
</Suspense>
} />
<Route path="/admin/monitoring/health" element={<AdminSystemHealthPage />} />
<Route path="/admin/monitoring/api" element={<AdminAPIMonitorPage />} />
{/* Reference Data */}
<Route path="/reference/seed-keywords" element={
<Suspense fallback={null}>
<SeedKeywords />
</Suspense>
} />
<Route path="/planner/keyword-opportunities" element={
<Suspense fallback={null}>
<KeywordOpportunities />
</Suspense>
} />
<Route path="/reference/industries" element={
<Suspense fallback={null}>
<ReferenceIndustries />
</Suspense>
} />
<Route path="/reference/seed-keywords" element={<SeedKeywords />} />
<Route path="/planner/keyword-opportunities" element={<KeywordOpportunities />} />
<Route path="/reference/industries" element={<ReferenceIndustries />} />
{/* Setup Pages */}
<Route path="/setup/add-keywords" element={
<Suspense fallback={null}>
<IndustriesSectorsKeywords />
</Suspense>
} />
<Route path="/setup/add-keywords" element={<IndustriesSectorsKeywords />} />
{/* Legacy redirect */}
<Route path="/setup/industries-sectors-keywords" element={<Navigate to="/setup/add-keywords" replace />} />
{/* Settings */}
<Route path="/settings/profile" element={
<Suspense fallback={null}>
<ProfileSettingsPage />
</Suspense>
} />
<Route path="/settings" element={
<Suspense fallback={null}>
<GeneralSettings />
</Suspense>
} />
<Route path="/settings/users" element={
<Suspense fallback={null}>
<Users />
</Suspense>
} />
<Route path="/settings/subscriptions" element={
<Suspense fallback={null}>
<Subscriptions />
</Suspense>
} />
<Route path="/settings/system" element={
<Suspense fallback={null}>
<SystemSettings />
</Suspense>
} />
<Route path="/settings/account" element={
<Suspense fallback={null}>
<AccountSettings />
</Suspense>
} />
<Route path="/settings/modules" element={
<Suspense fallback={null}>
<ModuleSettings />
</Suspense>
} />
<Route path="/settings/ai" element={
<Suspense fallback={null}>
<AISettings />
</Suspense>
} />
<Route path="/settings/plans" element={
<Suspense fallback={null}>
<Plans />
</Suspense>
} />
<Route path="/settings/industries" element={
<Suspense fallback={null}>
<Industries />
</Suspense>
} />
<Route path="/settings/status" element={
<Suspense fallback={null}>
<MasterStatus />
</Suspense>
} />
<Route path="/settings/api-monitor" element={
<Suspense fallback={null}>
<ApiMonitor />
</Suspense>
} />
<Route path="/settings/debug-status" element={
<Suspense fallback={null}>
<DebugStatus />
</Suspense>
} />
<Route path="/settings/profile" element={<ProfileSettingsPage />} />
<Route path="/settings" element={<GeneralSettings />} />
<Route path="/settings/users" element={<Users />} />
<Route path="/settings/subscriptions" element={<Subscriptions />} />
<Route path="/settings/system" element={<SystemSettings />} />
<Route path="/settings/account" element={<AccountSettings />} />
<Route path="/settings/modules" element={<ModuleSettings />} />
<Route path="/settings/ai" element={<AISettings />} />
<Route path="/settings/plans" element={<Plans />} />
<Route path="/settings/industries" element={<Industries />} />
<Route path="/settings/status" element={<MasterStatus />} />
<Route path="/settings/api-monitor" element={<ApiMonitor />} />
<Route path="/settings/debug-status" element={<DebugStatus />} />
<Route path="/settings/integration" element={
<Suspense fallback={null}>
<AdminGuard>
<Integration />
</AdminGuard>
</Suspense>
} />
<Route path="/settings/publishing" element={
<Suspense fallback={null}>
<Publishing />
</Suspense>
} />
<Route path="/settings/sites" element={
<Suspense fallback={null}>
<Sites />
</Suspense>
} />
<Route path="/settings/import-export" element={
<Suspense fallback={null}>
<ImportExport />
</Suspense>
<AdminGuard>
<Integration />
</AdminGuard>
} />
<Route path="/settings/publishing" element={<Publishing />} />
<Route path="/settings/sites" element={<Sites />} />
<Route path="/settings/import-export" element={<ImportExport />} />
{/* Sites Management */}
<Route path="/sites" element={
<Suspense fallback={null}>
<SiteList />
</Suspense>
} />
<Route path="/sites/manage" element={
<Suspense fallback={null}>
<SiteManage />
</Suspense>
} />
<Route path="/sites/:id" element={
<Suspense fallback={null}>
<SiteDashboard />
</Suspense>
} />
<Route path="/sites/:id/pages" element={
<Suspense fallback={null}>
<PageManager />
</Suspense>
} />
<Route path="/sites/:id/pages/new" element={
<Suspense fallback={null}>
<PageManager />
</Suspense>
} />
<Route path="/sites/:id/pages/:pageId/edit" element={
<Suspense fallback={null}>
<PageManager />
</Suspense>
} />
<Route path="/sites/:id/content" element={
<Suspense fallback={null}>
<SiteContent />
</Suspense>
} />
<Route path="/sites/:id/settings" element={
<Suspense fallback={null}>
<SiteSettings />
</Suspense>
} />
<Route path="/sites/:id/sync" element={
<Suspense fallback={null}>
<SyncDashboard />
</Suspense>
} />
<Route path="/sites/:id/deploy" element={
<Suspense fallback={null}>
<DeploymentPanel />
</Suspense>
} />
<Route path="/sites/:id/posts/:postId" element={
<Suspense fallback={null}>
<PostEditor />
</Suspense>
} />
<Route path="/sites/:id/posts/:postId/edit" element={
<Suspense fallback={null}>
<PostEditor />
</Suspense>
} />
<Route path="/sites" element={<SiteList />} />
<Route path="/sites/manage" element={<SiteManage />} />
<Route path="/sites/:id" element={<SiteDashboard />} />
<Route path="/sites/:id/pages" element={<PageManager />} />
<Route path="/sites/:id/pages/new" element={<PageManager />} />
<Route path="/sites/:id/pages/:pageId/edit" element={<PageManager />} />
<Route path="/sites/:id/content" element={<SiteContent />} />
<Route path="/sites/:id/settings" element={<SiteSettings />} />
<Route path="/sites/:id/sync" element={<SyncDashboard />} />
<Route path="/sites/:id/deploy" element={<DeploymentPanel />} />
<Route path="/sites/:id/posts/:postId" element={<PostEditor />} />
<Route path="/sites/:id/posts/:postId/edit" element={<PostEditor />} />
{/* Help */}
<Route path="/help" element={
<Suspense fallback={null}>
<Help />
</Suspense>
} />
<Route path="/help/docs" element={
<Suspense fallback={null}>
<Docs />
</Suspense>
} />
<Route path="/help/system-testing" element={
<Suspense fallback={null}>
<SystemTesting />
</Suspense>
} />
<Route path="/help/function-testing" element={
<Suspense fallback={null}>
<FunctionTesting />
</Suspense>
} />
<Route path="/help" element={<Help />} />
<Route path="/help/docs" element={<Docs />} />
<Route path="/help/system-testing" element={<SystemTesting />} />
<Route path="/help/function-testing" element={<FunctionTesting />} />
{/* UI Elements */}
<Route path="/ui-elements/alerts" element={
<Suspense fallback={null}>
<Alerts />
</Suspense>
} />
<Route path="/ui-elements/avatars" element={
<Suspense fallback={null}>
<Avatars />
</Suspense>
} />
<Route path="/ui-elements/badges" element={
<Suspense fallback={null}>
<Badges />
</Suspense>
} />
<Route path="/ui-elements/breadcrumb" element={
<Suspense fallback={null}>
<Breadcrumb />
</Suspense>
} />
<Route path="/ui-elements/buttons" element={
<Suspense fallback={null}>
<Buttons />
</Suspense>
} />
<Route path="/ui-elements/buttons-group" element={
<Suspense fallback={null}>
<ButtonsGroup />
</Suspense>
} />
<Route path="/ui-elements/cards" element={
<Suspense fallback={null}>
<Cards />
</Suspense>
} />
<Route path="/ui-elements/carousel" element={
<Suspense fallback={null}>
<Carousel />
</Suspense>
} />
<Route path="/ui-elements/dropdowns" element={
<Suspense fallback={null}>
<Dropdowns />
</Suspense>
} />
<Route path="/ui-elements/images" element={
<Suspense fallback={null}>
<ImagesUI />
</Suspense>
} />
<Route path="/ui-elements/links" element={
<Suspense fallback={null}>
<Links />
</Suspense>
} />
<Route path="/ui-elements/list" element={
<Suspense fallback={null}>
<List />
</Suspense>
} />
<Route path="/ui-elements/modals" element={
<Suspense fallback={null}>
<Modals />
</Suspense>
} />
<Route path="/ui-elements/notifications" element={
<Suspense fallback={null}>
<Notifications />
</Suspense>
} />
<Route path="/ui-elements/pagination" element={
<Suspense fallback={null}>
<Pagination />
</Suspense>
} />
<Route path="/ui-elements/popovers" element={
<Suspense fallback={null}>
<Popovers />
</Suspense>
} />
<Route path="/ui-elements/pricing-table" element={
<Suspense fallback={null}>
<PricingTable />
</Suspense>
} />
<Route path="/ui-elements/progressbar" element={
<Suspense fallback={null}>
<Progressbar />
</Suspense>
} />
<Route path="/ui-elements/ribbons" element={
<Suspense fallback={null}>
<Ribbons />
</Suspense>
} />
<Route path="/ui-elements/spinners" element={
<Suspense fallback={null}>
<Spinners />
</Suspense>
} />
<Route path="/ui-elements/tabs" element={
<Suspense fallback={null}>
<Tabs />
</Suspense>
} />
<Route path="/ui-elements/tooltips" element={
<Suspense fallback={null}>
<Tooltips />
</Suspense>
} />
<Route path="/ui-elements/videos" element={
<Suspense fallback={null}>
<Videos />
</Suspense>
} />
<Route path="/ui-elements/alerts" element={<Alerts />} />
<Route path="/ui-elements/avatars" element={<Avatars />} />
<Route path="/ui-elements/badges" element={<Badges />} />
<Route path="/ui-elements/breadcrumb" element={<Breadcrumb />} />
<Route path="/ui-elements/buttons" element={<Buttons />} />
<Route path="/ui-elements/buttons-group" element={<ButtonsGroup />} />
<Route path="/ui-elements/cards" element={<Cards />} />
<Route path="/ui-elements/carousel" element={<Carousel />} />
<Route path="/ui-elements/dropdowns" element={<Dropdowns />} />
<Route path="/ui-elements/images" element={<ImagesUI />} />
<Route path="/ui-elements/links" element={<Links />} />
<Route path="/ui-elements/list" element={<List />} />
<Route path="/ui-elements/modals" element={<Modals />} />
<Route path="/ui-elements/notifications" element={<Notifications />} />
<Route path="/ui-elements/pagination" element={<Pagination />} />
<Route path="/ui-elements/popovers" element={<Popovers />} />
<Route path="/ui-elements/pricing-table" element={<PricingTable />} />
<Route path="/ui-elements/progressbar" element={<Progressbar />} />
<Route path="/ui-elements/ribbons" element={<Ribbons />} />
<Route path="/ui-elements/spinners" element={<Spinners />} />
<Route path="/ui-elements/tabs" element={<Tabs />} />
<Route path="/ui-elements/tooltips" element={<Tooltips />} />
<Route path="/ui-elements/videos" element={<Videos />} />
{/* Components (Showcase Page) */}
<Route path="/components" element={
<Suspense fallback={null}>
<Components />
</Suspense>
} />
<Route path="/components" element={<Components />} />
{/* Redirect old notification route */}
<Route path="/notifications" element={
<Suspense fallback={null}>
<Notifications />
</Suspense>
} />
<Route path="/notifications" element={<Notifications />} />
</Route>
{/* Fallback Route */}
<Route path="*" element={<NotFound />} />
</Routes>
</Suspense>
</HelmetProvider>
</>
);