@@ -23,6 +23,10 @@ export default function OverviewPanel({ data, network, timeframe }) {
2323 return `${ percent . toFixed ( 1 ) } %` ;
2424 } ;
2525
26+ const formatPercentageChange = ( percent ) => {
27+ return `${ percent >= 0 ? '+' : '' } ${ percent . toFixed ( 2 ) } %` ;
28+ } ;
29+
2630 return (
2731 < div className = "overview-panel" >
2832 < div className = "panel-header" >
@@ -39,7 +43,7 @@ export default function OverviewPanel({ data, network, timeframe }) {
3943 < div className = "kpi-content" >
4044 < div className = "kpi-value" > { data . totalTrades ?. toLocaleString ( ) || 0 } </ div >
4145 < div className = "kpi-label" > Total Trades ({ timeframe } )</ div >
42- < div className = " kpi-change positive" > + { data . tradesChange || 0 } % </ div >
46+ < div className = { ` kpi-change ${ data . tradesChange >= 0 ? ' positive' : 'negative' } ` } > { formatPercentageChange ( data . tradesChange || 0 ) } </ div >
4347 </ div >
4448 </ div >
4549
@@ -48,7 +52,7 @@ export default function OverviewPanel({ data, network, timeframe }) {
4852 < div className = "kpi-content" >
4953 < div className = "kpi-value" > { formatVolume ( data . protocolVolume ) } </ div >
5054 < div className = "kpi-label" > Protocol Volume ({ timeframe } )</ div >
51- < div className = " kpi-change positive" > + { data . volumeChange || 0 } % </ div >
55+ < div className = { ` kpi-change ${ data . volumeChange >= 0 ? ' positive' : 'negative' } ` } > { formatPercentageChange ( data . volumeChange || 0 ) } </ div >
5256 </ div >
5357 </ div >
5458
@@ -57,7 +61,7 @@ export default function OverviewPanel({ data, network, timeframe }) {
5761 < div className = "kpi-content" >
5862 < div className = "kpi-value" > { formatNumber ( data . totalFees ) } </ div >
5963 < div className = "kpi-label" > Total Fees Collected</ div >
60- < div className = " kpi-change positive" > + { data . feesChange || 0 } % </ div >
64+ < div className = { ` kpi-change ${ data . feesChange >= 0 ? ' positive' : 'negative' } ` } > { formatPercentageChange ( data . feesChange || 0 ) } </ div >
6165 </ div >
6266 </ div >
6367
@@ -66,7 +70,7 @@ export default function OverviewPanel({ data, network, timeframe }) {
6670 < div className = "kpi-content" >
6771 < div className = "kpi-value" > { formatPercentage ( data . completionRate ) } </ div >
6872 < div className = "kpi-label" > Trade Completion Rate</ div >
69- < div className = " kpi-change positive" > + { data . completionChange || 0 } % </ div >
73+ < div className = { ` kpi-change ${ data . completionChange >= 0 ? ' positive' : 'negative' } ` } > { formatPercentageChange ( data . completionChange || 0 ) } </ div >
7074 </ div >
7175 </ div >
7276 </ div >
0 commit comments