mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 13:45:23 +02:00
Refactor: Unified Top 50 Badge logic and shared component integration
This commit is contained in:
@@ -604,7 +604,14 @@ const App: React.FC = () => {
|
||||
{view === 'dashboard' && <Dashboard data={aggregatedData} filterState={filters} adsData={filteredAdsData} stockMap={stockMap} />}
|
||||
{view === 'table' && (
|
||||
<Suspense fallback={<LoadingSpinner />}>
|
||||
<DataGrid data={combinedAdsData} hasCustomerFilter={filters.customer.length > 0} adsData={filteredAdsData} stockMap={stockMap} />
|
||||
<DataGrid
|
||||
data={combinedAdsData}
|
||||
hasCustomerFilter={filters.customer.length > 0}
|
||||
adsData={filteredAdsData}
|
||||
stockMap={stockMap}
|
||||
top50Ranking={top50Ranking2025}
|
||||
top50Mode={filters.customer.includes('Amazon UK') ? 'uk' : 'eu'}
|
||||
/>
|
||||
</Suspense>
|
||||
)}
|
||||
{view === 'weekly' && (
|
||||
@@ -616,6 +623,8 @@ const App: React.FC = () => {
|
||||
stockFilter={filters.stock}
|
||||
onStockFilterChange={(s) => setFilters(prev => ({ ...prev, stock: s }))}
|
||||
customerFilters={filters.customer}
|
||||
top50Mode={filters.customer.includes('Amazon UK') ? 'uk' : 'eu'}
|
||||
top50Ranking={top50Ranking2025}
|
||||
/>
|
||||
</Suspense>
|
||||
)}
|
||||
@@ -633,6 +642,7 @@ const App: React.FC = () => {
|
||||
stockMap={stockMap}
|
||||
stockFilter={filters.stock}
|
||||
onStockFilterChange={(s) => setFilters(prev => ({ ...prev, stock: s }))}
|
||||
top50Mode={filters.customer.includes('Amazon UK') ? 'uk' : 'eu'}
|
||||
/>
|
||||
</Suspense>
|
||||
)}
|
||||
@@ -645,6 +655,7 @@ const App: React.FC = () => {
|
||||
stockMap={stockMap}
|
||||
stockFilter={filters.stock}
|
||||
onStockFilterChange={(s) => setFilters(prev => ({ ...prev, stock: s }))}
|
||||
top50Mode={filters.customer.includes('Amazon UK') ? 'uk' : 'eu'}
|
||||
/>
|
||||
</Suspense>
|
||||
)}
|
||||
@@ -657,33 +668,35 @@ const App: React.FC = () => {
|
||||
<AIChat onSendMessage={handleAskGemini} isOpen={isChatOpen} setIsOpen={setIsChatOpen} />
|
||||
|
||||
{/* DATA MODAL */}
|
||||
{isDataModalOpen && (
|
||||
<div className="fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm animate-fade-in p-4">
|
||||
<div className="bg-slate-950 border border-border rounded-2xl shadow-2xl w-full max-w-lg relative overflow-hidden">
|
||||
<div className="bg-slate-900 px-6 py-4 border-b border-border flex justify-between items-center">
|
||||
<h2 className="text-lg font-bold text-white">Data Source Settings</h2>
|
||||
<button onClick={() => setIsDataModalOpen(false)} className="text-slate-400 hover:text-white transition-colors">
|
||||
<CloseIcon />
|
||||
</button>
|
||||
</div>
|
||||
{
|
||||
isDataModalOpen && (
|
||||
<div className="fixed inset-0 z-[100] flex items-center justify-center bg-black/70 backdrop-blur-sm animate-fade-in p-4">
|
||||
<div className="bg-slate-950 border border-border rounded-2xl shadow-2xl w-full max-w-lg relative overflow-hidden">
|
||||
<div className="bg-slate-900 px-6 py-4 border-b border-border flex justify-between items-center">
|
||||
<h2 className="text-lg font-bold text-white">Data Source Settings</h2>
|
||||
<button onClick={() => setIsDataModalOpen(false)} className="text-slate-400 hover:text-white transition-colors">
|
||||
<CloseIcon />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="p-6">
|
||||
<FileUpload
|
||||
onSalesUpload={handleSalesUpload}
|
||||
onAdsUpload={handleAdsUpload}
|
||||
onTrafficUpload={handleTrafficUpload}
|
||||
onUrlSubmit={handleDataFetch}
|
||||
isLoading={syncing}
|
||||
activeUrl={activeUrl}
|
||||
onDisconnect={disconnectUrl}
|
||||
lastUpdated={lastUpdated}
|
||||
/>
|
||||
<div className="p-6">
|
||||
<FileUpload
|
||||
onSalesUpload={handleSalesUpload}
|
||||
onAdsUpload={handleAdsUpload}
|
||||
onTrafficUpload={handleTrafficUpload}
|
||||
onUrlSubmit={handleDataFetch}
|
||||
isLoading={syncing}
|
||||
activeUrl={activeUrl}
|
||||
onDisconnect={disconnectUrl}
|
||||
lastUpdated={lastUpdated}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
)
|
||||
}
|
||||
|
||||
</div>
|
||||
</div >
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user