Skip to content

Commit 5fef31e

Browse files
authored
Merge pull request #301 from invariant-labs/staging
DEPLOY
2 parents 703b756 + 4370551 commit 5fef31e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1086
-490
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"dependencies": {
1818
"@emotion/react": "^11.11.4",
1919
"@emotion/styled": "^11.11.5",
20-
"@invariant-labs/a0-sdk": "^0.2.17",
20+
"@invariant-labs/a0-sdk": "^0.2.20",
2121
"@mui/icons-material": "^5.15.15",
2222
"@mui/material": "^5.15.15",
2323
"@nightlylabs/wallet-selector-polkadot": "^0.2.5",

src/components/Header/Header.stories.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ export const Primary: Story = {
4343
name: Chain.AlephZero,
4444
address: 'https://azero.invariant.app/swap'
4545
},
46-
onChainSelect: fn()
46+
onChainSelect: fn(),
47+
network: Network.Testnet,
48+
defaultMainnetRPC: 'https://rpc.moonbeam.network'
4749
}
4850
}

src/components/Header/Header.tsx

Lines changed: 53 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { Network } from '@invariant-labs/a0-sdk'
1919
import SelectChainButton from './HeaderButton/SelectChainButton'
2020
import { ISelectChain } from '@store/consts/types'
2121
import SelectChain from '@components/Modals/SelectChain/SelectChain'
22+
import SelectMainnetRPC from '@components/Modals/SelectMainnetRPC/SelectMainnetRPC'
2223

2324
export interface IHeader {
2425
address: string
@@ -35,6 +36,8 @@ export interface IHeader {
3536
onChangeWallet: () => void
3637
activeChain: ISelectChain
3738
onChainSelect: (chain: ISelectChain) => void
39+
network: Network
40+
defaultMainnetRPC: string
3841
}
3942

4043
export const Header: React.FC<IHeader> = ({
@@ -51,7 +54,9 @@ export const Header: React.FC<IHeader> = ({
5154
onCopyAddress,
5255
onChangeWallet,
5356
activeChain,
54-
onChainSelect
57+
onChainSelect,
58+
network
59+
// defaultMainnetRPC
5560
}) => {
5661
const { classes } = useStyles()
5762
const buttonStyles = useButtonStyles()
@@ -81,7 +86,15 @@ export const Header: React.FC<IHeader> = ({
8186
{
8287
networkType: Network.Testnet,
8388
rpc: RPC.TEST,
84-
rpcName: 'Aleph Zero'
89+
rpcName: 'Aleph Zero Testnet'
90+
}
91+
]
92+
93+
const mainnetRPCs = [
94+
{
95+
networkType: Network.Mainnet,
96+
rpc: RPC.MAIN,
97+
rpcName: 'Aleph Zero Mainnet'
8598
}
8699
]
87100

@@ -148,22 +161,23 @@ export const Header: React.FC<IHeader> = ({
148161

149162
<Grid container item className={classes.buttons} wrap='nowrap'>
150163
<Grid container className={classes.leftButtons}>
151-
{typeOfNetwork === Network.Testnet ? (
152-
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
153-
<Button
154-
className={buttonStyles.classes.headerButton}
155-
variant='contained'
156-
sx={{ '& .MuiButton-label': buttonStyles.classes.label }}
157-
onClick={onFaucet}>
158-
Faucet
159-
</Button>
160-
</Box>
161-
) : null}
162-
{typeOfNetwork === Network.Testnet ? (
163-
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
164-
<SelectRPCButton rpc={rpc} networks={testnetRPCs} onSelect={onNetworkSelect} />
165-
</Box>
166-
) : null}
164+
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
165+
<Button
166+
className={buttonStyles.classes.headerButton}
167+
variant='contained'
168+
sx={{ '& .MuiButton-label': buttonStyles.classes.label }}
169+
onClick={onFaucet}>
170+
Faucet
171+
</Button>
172+
</Box>
173+
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
174+
<SelectRPCButton
175+
rpc={rpc}
176+
networks={network === Network.Testnet ? testnetRPCs : mainnetRPCs}
177+
onSelect={onNetworkSelect}
178+
network={network}
179+
/>
180+
</Box>
167181
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
168182
<SelectChainButton
169183
activeChain={activeChain}
@@ -180,6 +194,12 @@ export const Header: React.FC<IHeader> = ({
180194
rpcName:
181195
testnetRPCs.find(data => data.rpc === defaultTestnetRPC)?.rpcName ?? 'Custom'
182196
}
197+
// {
198+
// networkType: Network.Mainnet,
199+
// rpc: defaultMainnetRPC,
200+
// rpcName:
201+
// mainnetRPCs.find(data => data.rpc === defaultMainnetRPC)?.rpcName ?? 'Custom'
202+
// }
183203
]}
184204
onSelect={onNetworkSelect}
185205
/>
@@ -231,9 +251,9 @@ export const Header: React.FC<IHeader> = ({
231251
setRoutesModalOpen(false)
232252
unblurContent()
233253
}}
234-
onFaucet={typeOfNetwork === Network.Testnet && isMdDown ? onFaucet : undefined}
254+
onFaucet={isMdDown ? onFaucet : undefined}
235255
onRPC={
236-
typeOfNetwork === Network.Testnet && isMdDown
256+
isMdDown
237257
? () => {
238258
setRoutesModalOpen(false)
239259
setTestnetRpcsOpen(true)
@@ -261,7 +281,19 @@ export const Header: React.FC<IHeader> = ({
261281
}}
262282
activeRPC={rpc}
263283
/>
264-
) : null}
284+
) : (
285+
<SelectMainnetRPC
286+
networks={mainnetRPCs}
287+
open={testnetRpcsOpen}
288+
anchorEl={routesModalAnchor}
289+
onSelect={onNetworkSelect}
290+
handleClose={() => {
291+
setTestnetRpcsOpen(false)
292+
unblurContent()
293+
}}
294+
activeRPC={rpc}
295+
/>
296+
)}
265297
<SelectChain
266298
chains={CHAINS}
267299
open={chainSelectOpen}

src/components/Header/HeaderButton/SelectRPCButton.stories.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const Primary: Story = {
2222
rpcName: 'Testnet'
2323
}
2424
],
25-
onSelect: (networkType, rpc) => action('chosen: ' + networkType + ' ' + rpc)()
25+
onSelect: (networkType, rpc) => action('chosen: ' + networkType + ' ' + rpc)(),
26+
network: Network.Testnet
2627
}
2728
}

src/components/Header/HeaderButton/SelectRPCButton.tsx

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,21 @@ import { Button } from '@mui/material'
66
import SelectTestnetRPC from '@components/Modals/SelectTestnetRPC/SelectTestnetRPC'
77
import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'
88
import { Network } from '@invariant-labs/a0-sdk'
9+
import SelectMainnetRPC from '@components/Modals/SelectMainnetRPC/SelectMainnetRPC'
910

1011
export interface IProps {
1112
rpc: string
1213
networks: ISelectNetwork[]
1314
onSelect: (networkType: Network, rpcAddress: string, rpcName?: string) => void
1415
disabled?: boolean
16+
network: Network
1517
}
1618
export const SelectRPCButton: React.FC<IProps> = ({
1719
rpc,
1820
networks,
1921
onSelect,
20-
disabled = false
22+
disabled = false,
23+
network
2124
}) => {
2225
const { classes } = useStyles()
2326
const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null)
@@ -45,14 +48,25 @@ export const SelectRPCButton: React.FC<IProps> = ({
4548
onClick={handleClick}>
4649
RPC
4750
</Button>
48-
<SelectTestnetRPC
49-
networks={networks}
50-
open={openTestnetRpcs}
51-
anchorEl={anchorEl}
52-
onSelect={onSelect}
53-
handleClose={handleClose}
54-
activeRPC={rpc}
55-
/>
51+
{network === Network.Testnet ? (
52+
<SelectTestnetRPC
53+
networks={networks}
54+
open={openTestnetRpcs}
55+
anchorEl={anchorEl}
56+
onSelect={onSelect}
57+
handleClose={handleClose}
58+
activeRPC={rpc}
59+
/>
60+
) : (
61+
<SelectMainnetRPC
62+
networks={networks}
63+
open={openTestnetRpcs}
64+
anchorEl={anchorEl}
65+
onSelect={onSelect}
66+
handleClose={handleClose}
67+
activeRPC={rpc}
68+
/>
69+
)}
5670
</>
5771
)
5872
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { Meta, StoryObj } from '@storybook/react'
2+
import SelectMainnetRPC from './SelectMainnetRPC'
3+
import { Network } from '@invariant-labs/a0-sdk'
4+
5+
const meta = {
6+
title: 'Modals/SelectRPC',
7+
component: SelectMainnetRPC,
8+
args: {
9+
activeRPC: 'https://mainnet-mock.com',
10+
anchorEl: null,
11+
handleClose: () => {},
12+
networks: [
13+
{
14+
networkType: Network.Mainnet,
15+
rpc: 'https://mainnet-mock.com',
16+
rpcName: 'Mainnet'
17+
}
18+
],
19+
onSelect: () => {},
20+
open: true
21+
}
22+
} satisfies Meta<typeof SelectMainnetRPC>
23+
24+
export default meta
25+
type Story = StoryObj<typeof meta>
26+
27+
export const Primary: Story = {}

0 commit comments

Comments
 (0)