feat: remove MKT and Experiments tabs and all related code

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christian Vidal Wolf
2026-06-12 08:29:47 +02:00
co-authored by Claude Sonnet 4.6
parent 9f9c0c2975
commit 76d901fcde
25 changed files with 11 additions and 4985 deletions
+1 -38
View File
@@ -11,9 +11,7 @@ import { VendorStockBadge } from './VendorStockBadge';
import { BuyBoxWarningBadge } from './BuyBoxWarningBadge';
import { WarehouseIcon, AmazonSmileIcon, CoverageIcon } from './Icons';
import { ExcelFilter } from './ExcelFilter';
import { ExperimentBadge } from './ExperimentBadge';
import { WeeklyRow } from './WeeklyRow';
import { ActiveExperiment } from '../types';
interface WeeklyGridProps {
data: CombinedKPIs[];
@@ -34,8 +32,6 @@ interface WeeklyGridProps {
velocityMap?: Map<string, number>;
buyBoxLostMap?: Map<string, { countries: string[]; reasons: Record<string, string> }>;
top50Mode?: 'eu' | 'uk';
experimentMap?: Map<string, ActiveExperiment[]>;
onOpenExperiment?: (experimentId: string) => void;
}
type SortConfig = {
@@ -76,8 +72,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
top50Mode,
velocityMap,
buyBoxLostMap,
experimentMap,
onOpenExperiment
}) => {
// Pivot data - memoized
const { rows, weeks: allWeeks } = useMemo(() => pivotWeeklySalesData(data), [data]);
@@ -91,7 +85,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
const [growthFilterMode, setGrowthFilterMode] = useState<'all' | 'up' | 'down' | 'stable'>('all');
const [growthThreshold, setGrowthThreshold] = useState(10);
const [showOnlyTop50, setShowOnlyTop50] = useState(false);
const [showActiveExperiments, setShowActiveExperiments] = useState(false);
const [displayCount, setDisplayCount] = useState(50);
const [primaryMetric, setPrimaryMetric] = useState<'units' | 'revenue'>('units');
const scrollContainerRef = useRef<HTMLDivElement>(null);
@@ -215,15 +208,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
});
}
// Active Experiments Filter
if (showActiveExperiments && experimentMap) {
result = result.filter(r => {
const asin = r.asin.trim().toUpperCase();
const experiments = experimentMap.get(asin);
return experiments && experiments.length > 0;
});
}
// Column Filters (Excel-style) - using logic adapted from filterData
if (Object.keys(columnFilters).length > 0) {
(Object.entries(columnFilters) as [string, ColumnFilterCondition][]).forEach(([key, condition]) => {
@@ -343,7 +327,7 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
}
return result;
}, [rows, debouncedSearch, showOnlyTop50, showActiveExperiments, experimentMap, top50Ranking, growthFilterMode, growthThreshold, sortConfig, weeks, top50Mode, wocFilter, velocityMap, vendorStockMap, numericFilters, columnFilters]);
}, [rows, debouncedSearch, showOnlyTop50, top50Ranking, growthFilterMode, growthThreshold, sortConfig, weeks, top50Mode, wocFilter, velocityMap, vendorStockMap, numericFilters, columnFilters]);
const aggregateWoc = useMemo(() => {
if (!vendorStockMap || !velocityMap || filteredRows.length === 0) return null;
@@ -524,25 +508,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
</div>
)}
{/* Active Experiments Toggle */}
{experimentMap && experimentMap.size > 0 && (
<div className="flex bg-slate-950/50 p-1 rounded-xl border border-white/10 shadow-sm ml-2">
<button
onClick={() => setShowActiveExperiments(!showActiveExperiments)}
className={`flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-bold transition-all ${showActiveExperiments
? 'bg-fuchsia-600 text-white shadow-lg shadow-fuchsia-500/20'
: 'text-slate-400 hover:text-fuchsia-400'
}`}
title="Filter grid to show only ASINs with logged experiments"
>
<svg className="w-3.5 h-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z" />
</svg>
Active Experiments
</button>
</div>
)}
{/* Metric Toggle */}
<div className="flex bg-slate-950/50 p-1 rounded-xl border border-white/10 shadow-sm ml-auto lg:ml-0">
<button
@@ -848,8 +813,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
velocityMap={velocityMap}
buyBoxLostMap={buyBoxLostMap}
primaryMetric={primaryMetric}
experimentMap={experimentMap}
onOpenExperiment={onOpenExperiment}
/>
))}
{displayCount < sortedRows.length && (