Skip to content

Commit c0bbd68

Browse files
committed
refactor: change the way to set default tokens
1 parent c1a2286 commit c0bbd68

File tree

4 files changed

+46
-16
lines changed

4 files changed

+46
-16
lines changed

README.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,43 @@ function App() {
7272
);
7373
}
7474
```
75-
75+
## Default Tokens
76+
You can specify default tokens to be displayed in the swap interface by passing a `defaultTokens` prop to the `Swap` component. This prop should be an array of token objects, each containing the necessary details such as the token's address, symbol, and decimals.
77+
```tsx
78+
function App() {
79+
return (
80+
<>
81+
<Swap
82+
options={{
83+
default_pay_token:
84+
"EQD4P32U10snNoIavoq6cYPTQR82ewAjO20epigrWRAup54_",
85+
default_receive_token:
86+
"EQD-cvR0Nz6XAyRBvbhz-abTrRC6sI5tvHvvpeQraV9UAAD7",
87+
}}
88+
/>
89+
</>
90+
);
91+
}
92+
```
93+
<!-- write about pinned token -->
94+
### Pinned tokens
95+
You can pin specific tokens to the top of the token selection list by using the `pin_tokens` prop. This ensures that these tokens are always easily accessible to users.
96+
```tsx
97+
function App() {
98+
return (
99+
<>
100+
<Swap
101+
options={{
102+
pin_tokens: [
103+
"EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c",
104+
"EQD-cvR0Nz6XAyRBvbhz-abTrRC6sI5tvHvvpeQraV9UAAD7",
105+
],
106+
}}
107+
/>
108+
</>
109+
);
110+
}
111+
```
76112

77113
### Components
78114
1. TonConnectWrappedSwap:

lib/components/Swap/Swap.stories.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,10 @@ export const WithDefaultTokens: Story = {
9393
skeleton_shine: "#585959",
9494
},
9595
options: {
96-
defaultTokens: {
97-
pay_token: "EQD4P32U10snNoIavoq6cYPTQR82ewAjO20epigrWRAup54_",
98-
receive_token:
99-
"EQD-cvR0Nz6XAyRBvbhz-abTrRC6sI5tvHvvpeQraV9UAAD7",
100-
},
96+
default_pay_token:
97+
"EQD4P32U10snNoIavoq6cYPTQR82ewAjO20epigrWRAup54_",
98+
default_receive_token:
99+
"EQD-cvR0Nz6XAyRBvbhz-abTrRC6sI5tvHvvpeQraV9UAAD7",
101100
},
102101
},
103102
};

lib/store/options.store.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ import { create } from "zustand";
22
import { defaultsDeep } from "lodash";
33

44
export type SwapOptions = {
5-
defaultTokens?: {
6-
pay_token?: string;
7-
receive_token?: string;
8-
};
5+
default_pay_token?: string;
6+
default_receive_token?: string;
97
pin_tokens?: string[];
108
};
119

lib/store/swap.store.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ export const useSwapStore = create<SwapActions & SwapStates>((set, get) => ({
232232

233233
async initializeApp() {
234234
const { client, slippage } = get();
235-
const { defaultTokens, pin_tokens } =
235+
const { default_pay_token, default_receive_token, pin_tokens } =
236236
useOptionsStore.getState().options;
237237

238238
const getAsset = async (
@@ -259,11 +259,8 @@ export const useSwapStore = create<SwapActions & SwapStates>((set, get) => ({
259259
};
260260

261261
const initializeTokens = async () => {
262-
const payToken = await getAsset(defaultTokens?.pay_token, "TON");
263-
const receiveToken = await getAsset(
264-
defaultTokens?.receive_token,
265-
""
266-
);
262+
const payToken = await getAsset(default_pay_token, "TON");
263+
const receiveToken = await getAsset(default_receive_token, "");
267264

268265
if (!payToken) return;
269266

0 commit comments

Comments
 (0)