From 4fa8b0f45edd077a66edca1f287b786bd152845c Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Tue, 3 Mar 2026 16:16:52 +0100 Subject: [PATCH] feat(vendor): use modern area charts with gradient fills Replace bar charts with area charts featuring: - Gradient fill effects for modern look - Smooth monotone curves - Proper Y-axis orientation (reversed for BSR where lower is better) - Color-coded by market with transparency Co-authored-by: Qwen-Coder --- components/VendorDataView.tsx | 62 +++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/components/VendorDataView.tsx b/components/VendorDataView.tsx index 8575fe7..d6a6e4e 100644 --- a/components/VendorDataView.tsx +++ b/components/VendorDataView.tsx @@ -1,5 +1,5 @@ import React, { useMemo, useState } from 'react'; -import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; +import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, AreaChart, Area } from 'recharts'; import { BSRRecord } from '../types'; import { BuyBoxWarningBadge } from './BuyBoxWarningBadge'; @@ -181,7 +181,15 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad

Top Level BSR Trend ({resolutionLabel})

Lower rank = better position. Averaged across filtered ASINs per market.

- + + + {activeMarkets.map(m => ( + + + + + ))} + @@ -191,14 +199,18 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad /> {activeMarkets.map(m => ( - ))} - + @@ -207,7 +219,15 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad

Detail Level BSR Trend ({resolutionLabel})

Lower rank = better position. Averaged across filtered ASINs per market.

- + + + {activeMarkets.map(m => ( + + + + + ))} + @@ -217,14 +237,18 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad /> {activeMarkets.map(m => ( - ))} - + @@ -233,7 +257,15 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad

Average Rating ({resolutionLabel})

Averaged across filtered ASINs per market.

- + + + {activeMarkets.map(m => ( + + + + + ))} + @@ -243,14 +275,18 @@ const VendorDataView: React.FC = ({ bsrData = [], asinMetad /> {activeMarkets.map(m => ( - ))} - +