Load tool views on demand with isolated retry states
This commit is contained in:
+26
-39
@@ -8,36 +8,41 @@ import { SummaryCards } from './components/SummaryCards';
|
||||
import { LeftSidebar } from './components/LeftSidebar';
|
||||
import { TenderList } from './components/TenderList';
|
||||
import { RightSidebar } from './components/RightSidebar';
|
||||
import { SmartFilterBuilder } from './components/SmartFilterBuilder';
|
||||
import { DetailedSearchModal } from './components/DetailedSearchModal';
|
||||
import { TenderDetailModal } from './components/TenderDetailModal';
|
||||
import { CompanyScannerModal } from './components/CompanyScannerModal';
|
||||
import { AiSpecAnalyzerModal } from './components/AiSpecAnalyzerModal';
|
||||
import { UrunAramaModal } from './components/UrunAramaModal';
|
||||
import { KanbanBoard } from './components/KanbanBoard';
|
||||
|
||||
import { DailyBulletin } from './components/tools/DailyBulletin';
|
||||
import { ResultSearch } from './components/tools/ResultSearch';
|
||||
import { TenderCalendar } from './components/tools/TenderCalendar';
|
||||
import { ContractSearch } from './components/tools/ContractSearch';
|
||||
import { VatCalculator } from './components/tools/VatCalculator';
|
||||
import { SinirDeger } from './components/tools/SinirDeger';
|
||||
import { KullanimKilavuzu } from './components/KullanimKilavuzu';
|
||||
import { MobilFiltreCekmecesi } from './components/MobilFiltreCekmecesi';
|
||||
import { PriceAnalysis } from './components/tools/PriceAnalysis';
|
||||
import { CompetitorRadar } from './components/tools/CompetitorRadar';
|
||||
import { DocumentVault } from './components/tools/DocumentVault';
|
||||
import { AnalyticsDashboard } from './components/tools/AnalyticsDashboard';
|
||||
import { RedFlags } from './components/tools/RedFlags';
|
||||
import { TedTenders } from './components/tools/TedTenders';
|
||||
import { Pricing } from './components/tools/Pricing';
|
||||
import { KikDecisions } from './components/tools/KikDecisions';
|
||||
import { ApiWebhooks } from './components/tools/ApiWebhooks';
|
||||
import { PwaSettings } from './components/tools/PwaSettings';
|
||||
import { AiModelSettings } from './components/tools/AiModelSettings';
|
||||
import { LoginPage } from './components/LoginPage';
|
||||
import { LandingPage } from './components/LandingPage';
|
||||
|
||||
import { DeferredView } from './components/DeferredView';
|
||||
|
||||
const toolViews = {
|
||||
smart_filter_builder: () => import('./components/SmartFilterBuilder').then(module => ({ default: module.SmartFilterBuilder })),
|
||||
bulten: () => import('./components/tools/DailyBulletin').then(module => ({ default: module.DailyBulletin })),
|
||||
sonuc: () => import('./components/tools/ResultSearch').then(module => ({ default: module.ResultSearch })),
|
||||
takvim: () => import('./components/tools/TenderCalendar').then(module => ({ default: module.TenderCalendar })),
|
||||
sozlesme: () => import('./components/tools/ContractSearch').then(module => ({ default: module.ContractSearch })),
|
||||
kdv: () => import('./components/tools/VatCalculator').then(module => ({ default: module.VatCalculator })),
|
||||
sinir: () => import('./components/tools/SinirDeger').then(module => ({ default: module.SinirDeger })),
|
||||
fiyat: () => import('./components/tools/PriceAnalysis').then(module => ({ default: module.PriceAnalysis })),
|
||||
kanban: () => import('./components/KanbanBoard').then(module => ({ default: module.KanbanBoard })),
|
||||
rakip_radar: () => import('./components/tools/CompetitorRadar').then(module => ({ default: module.CompetitorRadar })),
|
||||
dokuman_deposu: () => import('./components/tools/DocumentVault').then(module => ({ default: module.DocumentVault })),
|
||||
analitik_dashboard: () => import('./components/tools/AnalyticsDashboard').then(module => ({ default: module.AnalyticsDashboard })),
|
||||
kirmizi_bayrak: () => import('./components/tools/RedFlags').then(module => ({ default: module.RedFlags })),
|
||||
ted_eu: () => import('./components/tools/TedTenders').then(module => ({ default: module.TedTenders })),
|
||||
kik_kararlari: () => import('./components/tools/KikDecisions').then(module => ({ default: module.KikDecisions })),
|
||||
planlar: () => import('./components/tools/Pricing').then(module => ({ default: module.Pricing })),
|
||||
api_webhooks: () => import('./components/tools/ApiWebhooks').then(module => ({ default: module.ApiWebhooks })),
|
||||
pwa_settings: () => import('./components/tools/PwaSettings').then(module => ({ default: module.PwaSettings })),
|
||||
ai_ayarlari: () => import('./components/tools/AiModelSettings').then(module => ({ default: module.AiModelSettings })),
|
||||
};
|
||||
|
||||
const MainContent = () => {
|
||||
const { activeTab, isAdmin, saveError, savingCount } = useApp();
|
||||
|
||||
@@ -62,26 +67,8 @@ const MainContent = () => {
|
||||
</>
|
||||
)}
|
||||
|
||||
{/* Dedicated Tool Views */}
|
||||
{activeTab === 'smart_filter_builder' && <SmartFilterBuilder />}
|
||||
{activeTab === 'bulten' && <DailyBulletin />}
|
||||
{activeTab === 'sonuc' && <ResultSearch />}
|
||||
{activeTab === 'takvim' && <TenderCalendar />}
|
||||
{activeTab === 'sozlesme' && <ContractSearch />}
|
||||
{activeTab === 'kdv' && <VatCalculator />}
|
||||
{activeTab === 'sinir' && <SinirDeger />}
|
||||
{activeTab === 'fiyat' && <PriceAnalysis />}
|
||||
{activeTab === 'kanban' && <KanbanBoard />}
|
||||
{activeTab === 'rakip_radar' && <CompetitorRadar />}
|
||||
{activeTab === 'dokuman_deposu' && <DocumentVault />}
|
||||
{activeTab === 'analitik_dashboard' && <AnalyticsDashboard />}
|
||||
{activeTab === 'kirmizi_bayrak' && <RedFlags />}
|
||||
{activeTab === 'ted_eu' && <TedTenders />}
|
||||
{activeTab === 'kik_kararlari' && <KikDecisions />}
|
||||
{activeTab === 'planlar' && <Pricing />}
|
||||
{activeTab === 'api_webhooks' && <ApiWebhooks />}
|
||||
{activeTab === 'pwa_settings' && <PwaSettings />}
|
||||
{activeTab === 'ai_ayarlari' && isAdmin && <AiModelSettings />}
|
||||
{toolViews[activeTab] && (activeTab !== 'ai_ayarlari' || isAdmin) &&
|
||||
<DeferredView key={activeTab} load={toolViews[activeTab]} />}
|
||||
|
||||
{/* Global Modals */}
|
||||
<DetailedSearchModal />
|
||||
|
||||
Reference in New Issue
Block a user