Skip to content

Commit 447e439

Browse files
authored
[HotFix] Fix pair in order history and fix accordion (#242)
1 parent 8650e8a commit 447e439

File tree

9 files changed

+44
-29
lines changed

9 files changed

+44
-29
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"@fuels/react": "^0.36.1",
2626
"@intercom/messenger-js-sdk": "^0.0.14",
2727
"@pythnetwork/pyth-evm-js": "^1.33.0",
28-
"@szhsin/react-accordion": "^1.2.3",
28+
"@szhsin/react-accordion": "^1.3.0",
2929
"@tanstack/react-query": "^5.40.1",
3030
"@tanstack/react-table": "^8.13.2",
3131
"@testing-library/jest-dom": "^5.17.0",

pnpm-lock.yaml

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/AccordionItem.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@ const AccordionItem: React.FC<Props> = ({ header, ...rest }) => (
1818
}}
1919
className="item"
2020
contentProps={{ className: "itemContent" }}
21+
header={header}
2122
panelProps={{ className: "itemPanel" }}
2223
/>
2324
);
2425

2526
export default AccordionItem;
2627

27-
const AccordionItemRoot = styled(RawAccordionItem)<{ hideBottomBorder?: boolean; header?: React.JSX.Element }>`
28+
const AccordionItemRoot = styled(RawAccordionItem)<{
29+
hideBottomBorder?: boolean;
30+
header?: AccordionItemProps["header"];
31+
}>`
2832
${({ hideBottomBorder, theme }) =>
2933
hideBottomBorder ? "" : `border-bottom: 1px solid ${theme.colors.borderSecondary}`};
3034
padding: 12px 0;

src/entity/SpotMarketOrder.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import { Order } from "@compolabs/spark-orderbook-ts-sdk";
44

55
import { DEFAULT_DECIMALS } from "@constants";
66
import BN from "@utils/BN";
7+
import { CONFIG } from "@utils/getConfig.ts";
78

89
import { FuelNetwork } from "@blockchain";
910

1011
import { Token } from "./Token";
1112

1213
export type SpotMarketOrderParams = {
13-
quoteAssetId: string;
14+
quoteAssetId?: string;
1415
} & Order;
1516

1617
export class SpotMarketOrder {
@@ -37,13 +38,16 @@ export class SpotMarketOrder {
3738

3839
constructor(order: SpotMarketOrderParams) {
3940
const bcNetwork = FuelNetwork.getInstance();
41+
const activeMarket = CONFIG.MARKETS.find((el) => el.contractId === order.market);
42+
43+
const baseToken = order.quoteAssetId ? order.asset : (activeMarket?.baseAssetId ?? "");
44+
const quoteToken = order.quoteAssetId ?? activeMarket?.quoteAssetId ?? "";
4045

4146
this.id = order.id;
4247
this.user = order.user;
4348
this.status = order.status;
44-
45-
this.baseToken = bcNetwork.getTokenByAssetId(order.asset);
46-
this.quoteToken = bcNetwork.getTokenByAssetId(order.quoteAssetId);
49+
this.baseToken = bcNetwork.getTokenByAssetId(baseToken);
50+
this.quoteToken = bcNetwork.getTokenByAssetId(quoteToken);
4751

4852
this.orderType = order.orderType;
4953

src/screens/SpotScreen/BottomTables/SpotTable/SpotTableImpl.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ const SpotTableImpl: React.FC = observer(() => {
132132
const [page, setPage] = useState(startPage);
133133
const historyOrders = (vm.userOrdersStats?.closed ?? 0) + (vm.userOrdersStats?.canceled ?? 0);
134134
const openOrders = vm.userOrdersStats?.active ?? 0;
135-
const closeOrders = (vm.userOrdersStats?.closed ?? 0) + (vm.userOrdersStats?.canceled ?? 0);
136-
const PAGINATION_LENGTH = [openOrders, closeOrders];
135+
const PAGINATION_LENGTH = [openOrders, historyOrders];
137136
const TABS = [
138137
{ title: "ORDERS", disabled: false, rowCount: openOrders },
139138
{ title: "HISTORY", disabled: false, rowCount: historyOrders },

src/screens/SpotScreen/BottomTables/SpotTable/SpotTableVM.tsx

+9-9
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { ACTION_MESSAGE_TYPE, getActionMessage } from "@utils/getActionMessage";
1212
import { handleWalletErrors } from "@utils/handleWalletErrors";
1313

1414
import { FuelNetwork } from "@blockchain";
15-
import { SpotMarket, SpotMarketOrder } from "@entity";
15+
import { SpotMarketOrder } from "@entity";
1616

1717
import { Subscription } from "@src/typings/utils";
1818

@@ -85,7 +85,7 @@ class SpotTableVM {
8585
return;
8686
}
8787

88-
this.subscribeToOrders(market);
88+
this.subscribeToOrders();
8989
},
9090
{ fireImmediately: true },
9191
);
@@ -156,7 +156,7 @@ class SpotTableVM {
156156
this.withdrawingAssetId = null;
157157
};
158158

159-
private subscribeToOpenOrders = (market: SpotMarket) => {
159+
private subscribeToOpenOrders = () => {
160160
const { accountStore } = this.rootStore;
161161
const bcNetwork = FuelNetwork.getInstance();
162162

@@ -174,7 +174,7 @@ class SpotTableVM {
174174
next: ({ data }) => {
175175
if (!data) return;
176176

177-
const sortedOrder = formatSpotMarketOrders(data.Order, market.quoteToken.assetId).sort(sortDesc);
177+
const sortedOrder = formatSpotMarketOrders(data.Order).sort(sortDesc);
178178
this.setUserOrders(sortedOrder);
179179

180180
if (!this.isOpenOrdersLoaded) {
@@ -184,7 +184,7 @@ class SpotTableVM {
184184
});
185185
};
186186

187-
private subscribeToHistoryOrders = (market: SpotMarket) => {
187+
private subscribeToHistoryOrders = () => {
188188
const { accountStore } = this.rootStore;
189189
const bcNetwork = FuelNetwork.getInstance();
190190

@@ -201,7 +201,7 @@ class SpotTableVM {
201201
next: ({ data }) => {
202202
if (!data) return;
203203

204-
const sortedOrdersHistory = formatSpotMarketOrders(data.Order, market.quoteToken.assetId).sort(sortDesc);
204+
const sortedOrdersHistory = formatSpotMarketOrders(data.Order).sort(sortDesc);
205205
this.setUserOrdersHistory(sortedOrdersHistory);
206206

207207
if (!this.isHistoryOrdersLoaded) {
@@ -211,9 +211,9 @@ class SpotTableVM {
211211
});
212212
};
213213

214-
private subscribeToOrders = (market: SpotMarket) => {
215-
this.subscribeToOpenOrders(market);
216-
this.subscribeToHistoryOrders(market);
214+
private subscribeToOrders = () => {
215+
this.subscribeToOpenOrders();
216+
this.subscribeToHistoryOrders();
217217
this.subscribeUserInfo();
218218
};
219219

src/screens/SpotScreen/MarketStatisticsBar.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ const MarketStatisticsBar: React.FC<IProps> = observer(({ isChartOpen, onSwitchC
5151

5252
return (
5353
<>
54-
<Icon alt={tradeStore.market?.baseToken.symbol} src={tradeStore.market?.baseToken.logo} />
54+
<MainIcon alt={tradeStore.market?.baseToken.symbol} src={tradeStore.market?.baseToken.logo} />
5555
<Icon
5656
alt={tradeStore.market?.quoteToken.symbol}
5757
src={tradeStore.market?.quoteToken.logo}
@@ -123,8 +123,8 @@ const Icon = styled.img`
123123
`;
124124

125125
const StyledArrow = styled.img`
126-
width: 24;
127-
height: 24;
126+
width: 24px;
127+
height: 24px;
128128
`;
129129

130130
const MarketSelect = styled.div<{
@@ -197,3 +197,7 @@ const SwitchContainer = styled(SmartFlex)<{ isVisible?: boolean }>`
197197
transition: opacity 250ms;
198198
}
199199
`;
200+
201+
const MainIcon = styled(Icon)`
202+
z-index: 9;
203+
`;

src/screens/SpotScreen/RightBlock/MarketSelection/MarketTitle.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const MarketTitle = ({ market, iconSize = 16 }: IProps) => {
1515
return (
1616
<MarketTitleContainer size={iconSize * 2}>
1717
<SmartFlex width="fit-content">
18-
<Icon alt="logo" size={iconSize} src={market.baseToken?.logo} />
18+
<MainIcon alt="logo" size={iconSize} src={market.baseToken?.logo} />
1919
<StyleIcon alt="logo" size={iconSize} src={market.quoteToken?.logo} />
2020
</SmartFlex>
2121
<StyledText color="primary" type={TEXT_TYPES.H}>
@@ -50,3 +50,7 @@ const StyledText = styled(Text)`
5050
overflow: hidden;
5151
white-space: nowrap;
5252
`;
53+
54+
const MainIcon = styled(Icon)`
55+
z-index: 9;
56+
`;

src/utils/formatSpotMarketOrders.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Order } from "@compolabs/spark-orderbook-ts-sdk";
22

33
import { SpotMarketOrder } from "@entity";
44

5-
export const formatSpotMarketOrders = (orders: Order[], quoteAssetId: string) => {
5+
export const formatSpotMarketOrders = (orders: Order[], quoteAssetId?: string) => {
66
return orders.map(
77
(order) =>
88
new SpotMarketOrder({

0 commit comments

Comments
 (0)