Skip to content

Commit be80cc1

Browse files
authored
Generate charts with data filtered by selected currency (#1602)
* Generate charts with data filtered by selected currency Pre-commit changes * Bugfix: refresh chart when USD is selected
1 parent 5fe89e2 commit be80cc1

File tree

1 file changed

+20
-8
lines changed
  • frontend/src/components/Charts/DepthChart

1 file changed

+20
-8
lines changed

frontend/src/components/Charts/DepthChart/index.tsx

+20-8
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ const DepthChart: React.FC<DepthChartProps> = ({
5555
const [rangeSteps, setRangeSteps] = useState<number>(8);
5656
const [xRange, setXRange] = useState<number>(8);
5757
const [xType, setXType] = useState<string>('premium');
58-
const [currencyCode, setCurrencyCode] = useState<number>(1);
58+
const [currencyCode, setCurrencyCode] = useState<number>(0);
5959
const [center, setCenter] = useState<number>();
6060

6161
const height = maxHeight < 10 ? 10 : maxHeight;
6262
const width = maxWidth < 10 ? 10 : maxWidth > 72.8 ? 72.8 : maxWidth;
6363

6464
useEffect(() => {
65-
setCurrencyCode(fav.currency === 0 ? 1 : fav.currency);
65+
setCurrencyCode(fav.currency); // as selected in BookControl
6666
}, [fav.currency]);
6767

6868
useEffect(() => {
@@ -74,7 +74,7 @@ const DepthChart: React.FC<DepthChartProps> = ({
7474
const originalPrice =
7575
(limits[order.currency]?.price ?? 0) * (1 + parseFloat(order.premium) / 100);
7676
const currencyPrice =
77-
(limits[currencyCode]?.price ?? 0) * (1 + parseFloat(order.premium) / 100);
77+
(limits[currencyCode || 1]?.price ?? 0) * (1 + parseFloat(order.premium) / 100);
7878

7979
const originalAmount =
8080
order.has_range && order.max_amount
@@ -124,10 +124,22 @@ const DepthChart: React.FC<DepthChartProps> = ({
124124
const generateSeries: () => void = () => {
125125
const sortedOrders: PublicOrder[] =
126126
xType === 'base_price'
127-
? enrichedOrders.sort(
128-
(order1, order2) => (order1?.base_price ?? 0) - (order2?.base_price ?? 0),
129-
)
130-
: enrichedOrders.sort((order1, order2) => order1?.premium - order2?.premium);
127+
? enrichedOrders
128+
.filter(
129+
(order: PublicOrder | null) => currencyCode === 0 || order?.currency == currencyCode,
130+
)
131+
.sort(
132+
(order1: PublicOrder | null, order2: PublicOrder | null) =>
133+
(order1?.base_price ?? 0) - (order2?.base_price ?? 0),
134+
)
135+
: enrichedOrders
136+
.filter(
137+
(order: PublicOrder | null) => currencyCode === 0 || order?.currency == currencyCode,
138+
)
139+
.sort(
140+
(order1: PublicOrder | null, order2: PublicOrder | null) =>
141+
order1?.premium - order2?.premium,
142+
);
131143

132144
const sortedBuyOrders: PublicOrder[] = sortedOrders
133145
.filter((order) => order?.type === 0)
@@ -317,7 +329,7 @@ const DepthChart: React.FC<DepthChartProps> = ({
317329
<Grid item>
318330
<Box justifyContent='center'>
319331
{xType === 'base_price'
320-
? `${center} ${String(currencyDict[currencyCode])}`
332+
? `${center} ${String(currencyDict[(currencyCode || 1) as keyof object])}`
321333
: `${String(center.toPrecision(3))}%`}
322334
</Box>
323335
</Grid>

0 commit comments

Comments
 (0)