Skip to content

Commit a332b73

Browse files
Fix token mock for storybook
1 parent 698aa3c commit a332b73

File tree

9 files changed

+110
-44
lines changed

9 files changed

+110
-44
lines changed

packages/profile/.storybook/main.ts

+17-7
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,28 @@ const config: StorybookConfig = {
2020
name: getAbsolutePath("@storybook/react-vite"),
2121
options: {},
2222
},
23-
viteFinal: (config) =>
23+
viteFinal: (config) =>
2424
mergeConfig(config, {
2525
resolve: {
2626
alias: {
2727
"@/hooks/account": require.resolve("../src/hooks/account.mock.ts"),
28-
"@/hooks/collection": require.resolve("../src/hooks/collection.mock.ts"),
29-
"@/hooks/token": require.resolve("../src/hooks/token.mock.ts"),
30-
"@cartridge/utils/api/cartridge": require.resolve("../node_modules/@cartridge/utils/dist/api/cartridge/index.js"),
31-
"@cartridge/utils/api/indexer": require.resolve("../node_modules/@cartridge/utils/dist/api/indexer/index.js"),
32-
"@cartridge/utils/mock/data": require.resolve("../node_modules/@cartridge/utils/dist/mock/data/index.js"),
28+
"@/hooks/collection": require.resolve(
29+
"../src/hooks/collection.mock.ts",
30+
),
31+
"@cartridge/utils/api/cartridge": require.resolve(
32+
"../node_modules/@cartridge/utils/dist/api/cartridge/index.js",
33+
),
34+
"@cartridge/utils/api/indexer": require.resolve(
35+
"../node_modules/@cartridge/utils/dist/api/indexer/index.js",
36+
),
37+
"@cartridge/utils/mock/data": require.resolve(
38+
"../node_modules/@cartridge/utils/dist/mock/data/index.js",
39+
),
40+
"@cartridge/utils": require.resolve(
41+
"../node_modules/@cartridge/utils/dist/index.mock.js",
42+
),
3343
},
3444
},
35-
})
45+
}),
3646
};
3747
export default config;

packages/profile/src/components/inventory/token/send/index.stories.tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import type { Meta, StoryObj } from "@storybook/react";
2-
2+
import { tokensBySymbol } from "@cartridge/utils/mock/data";
33
import { SendToken } from "./index";
44

55
const meta = {
66
component: SendToken,
7+
parameters: {
8+
router: {
9+
params: {
10+
address: tokensBySymbol.ETH.address,
11+
},
12+
},
13+
},
714
} satisfies Meta<typeof SendToken>;
815

916
export default meta;

packages/profile/src/components/inventory/token/token.stories.tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import type { Meta, StoryObj } from "@storybook/react";
2-
2+
import { tokensBySymbol } from "@cartridge/utils/mock/data";
33
import { Token } from "./token";
44

55
const meta = {
66
component: Token,
7+
parameters: {
8+
router: {
9+
params: {
10+
address: tokensBySymbol.ETH.address,
11+
},
12+
},
13+
},
714
} satisfies Meta<typeof Token>;
815

916
export default meta;

packages/profile/src/hooks/token.mock.ts

-13
This file was deleted.
+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from "./api";
22
export * from "./balance";
33
export * from "./posthog";
4+
export * from "./tokens.mock";
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { TokensContextValue } from "src/context/tokens";
2+
import { getChecksumAddress } from "starknet";
3+
import { tokensByAddress } from "@cartridge/utils/mock/data";
4+
5+
export function useTokens(): TokensContextValue {
6+
return {
7+
tokens: tokensByAddress,
8+
isLoading: false,
9+
register: () => {},
10+
};
11+
}
12+
13+
export function useToken(address: string) {
14+
const { tokens, isLoading, error } = useTokens();
15+
const token = tokens[getChecksumAddress(address)];
16+
17+
return {
18+
token,
19+
isLoading,
20+
error,
21+
};
22+
}
23+
24+
export function useFeeToken() {
25+
const { feeToken, isLoading, error } = useTokens();
26+
return {
27+
token: feeToken,
28+
isLoading,
29+
error,
30+
};
31+
}

packages/utils/src/hooks/tokens.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export function useTokens(): TokensContextValue {
1414
export function useToken(address: string) {
1515
const { tokens, isLoading, error } = useTokens();
1616
const token = tokens[getChecksumAddress(address)];
17+
1718
return {
1819
token,
1920
isLoading,

packages/utils/src/index.mock.ts

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export * from "./account";
2+
export * from "./color";
3+
export * from "./api";
4+
export * from "./hooks/index.mock";
5+
export * from "./iframe";
6+
export * from "./erc20";
7+
export * from "./explorer";
8+
export * from "./network";
9+
export * from "./context";
+35-22
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,41 @@
1-
export const tokens = {
1+
import { ERC20 } from "../../context/tokens";
2+
import { ERC20Contract } from "../../erc20";
3+
4+
export const tokensBySymbol: Record<string, ERC20> = {
25
ETH: {
3-
balance: {
4-
value: 1000000000000000000n,
5-
formatted: "1.00",
6-
},
7-
meta: {
8-
address:
9-
"0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",
10-
symbol: "ETH",
11-
logoUrl:
12-
"https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/e07829b7-0382-4e03-7ecd-a478c5aa9f00/logo",
6+
address:
7+
"0x049D36570D4e46f48e99674bd3fcc84644DdD6b96F7C741B1562B82f9e004dC7",
8+
name: "Ether",
9+
symbol: "ETH",
10+
decimals: 18,
11+
icon: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/e07829b7-0382-4e03-7ecd-a478c5aa9f00/logo",
12+
balance: 1000000000000000000n,
13+
price: {
14+
amount: "1000000000000000000",
15+
base: "USD",
16+
decimals: 18,
17+
quote: "USD",
1318
},
19+
contract: {} as ERC20Contract,
1420
},
15-
STARK: {
16-
balance: {
17-
value: 100000000000000000000n,
18-
formatted: "100.00",
19-
},
20-
meta: {
21-
address:
22-
"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",
23-
symbol: "STARK",
24-
logoUrl:
25-
"https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/1b126320-367c-48ed-cf5a-ba7580e49600/logo",
21+
STRK: {
22+
address:
23+
"0x04718f5a0Fc34cC1AF16A1cdee98fFB20C31f5cD61D6Ab07201858f4287c938D",
24+
name: "Stark",
25+
symbol: "STRK",
26+
decimals: 18,
27+
icon: "https://imagedelivery.net/0xPAQaDtnQhBs8IzYRIlNg/1b126320-367c-48ed-cf5a-ba7580e49600/logo",
28+
balance: 1000000000000000000n,
29+
price: {
30+
amount: "1000000000000000000",
31+
base: "USD",
32+
decimals: 18,
33+
quote: "USD",
2634
},
35+
contract: {} as ERC20Contract,
2736
},
2837
};
38+
39+
export const tokensByAddress: Record<string, ERC20> = Object.values(
40+
tokensBySymbol,
41+
).reduce((acc, t) => ({ ...acc, [t.address]: t }), {});

0 commit comments

Comments
 (0)