@@ -12,7 +12,7 @@ import { useRainbowContext } from "@/contexts/RainbowProvider"
12
12
import { switchNetwork } from "@/utils"
13
13
14
14
const GasPriceViewer = ( ) => {
15
- const { chainId } = useRainbowContext ( )
15
+ const { chainId, connect , walletCurrentAddress } = useRainbowContext ( )
16
16
const [ anchorEl , setAnchorEl ] = useState < null | HTMLElement > ( null )
17
17
18
18
const [ warningVisible , setwarningVisible ] = useState ( false )
@@ -41,18 +41,37 @@ const GasPriceViewer = () => {
41
41
setAnchorEl ( event . currentTarget )
42
42
}
43
43
44
- const handleClosePopover = ( ) => {
44
+ const handleClosePopover = e => {
45
+ // allow user to add network immediately after connecting wallet
46
+ if ( e . relatedTarget && e . relatedTarget . getAttribute ( "aria-labelledby" ) === "rk_connect_title" ) {
47
+ return
48
+ }
45
49
setAnchorEl ( null )
46
50
}
47
51
48
- const handleAddScrollToWallet = async ( ) => {
49
- if ( chainId === CHAIN_ID . L2 ) {
50
- setwarningVisible ( true )
51
- setAnchorEl ( null )
52
- } else {
53
- await switchNetwork ( CHAIN_ID . L2 )
52
+ const actionData = useMemo ( ( ) => {
53
+ if ( ! walletCurrentAddress ) {
54
+ return {
55
+ label : "Connect wallet to add Scroll" ,
56
+ onClick : connect ,
57
+ }
58
+ } else if ( chainId === CHAIN_ID . L2 ) {
59
+ return {
60
+ label : "Add Scroll to wallet" ,
61
+ onClick : ( ) => {
62
+ setwarningVisible ( true )
63
+ setAnchorEl ( null )
64
+ } ,
65
+ }
54
66
}
55
- }
67
+ return {
68
+ label : "Add Scroll to wallet" ,
69
+ onClick : async ( ) => {
70
+ await switchNetwork ( CHAIN_ID . L2 )
71
+ setAnchorEl ( null )
72
+ } ,
73
+ }
74
+ } , [ chainId , walletCurrentAddress ] )
56
75
57
76
const handleCloseWarning = ( ) => {
58
77
setwarningVisible ( false )
@@ -108,7 +127,7 @@ const GasPriceViewer = () => {
108
127
rowGap : "2.4rem" ,
109
128
columnGap : "0.8rem" ,
110
129
padding : "2.4rem" ,
111
- width : "24.6rem " ,
130
+ width : "26.8rem " ,
112
131
fontSize : "1.6rem" ,
113
132
lineHeight : "2.4rem" ,
114
133
} }
@@ -128,12 +147,12 @@ const GasPriceViewer = () => {
128
147
fontSize : "1.6rem" ,
129
148
lineHeight : "2.4rem" ,
130
149
gridColumn : "1 / -1" ,
131
- p : "0.8rem 2.4rem " ,
150
+ p : "0.8rem" ,
132
151
height : "4rem" ,
133
152
} }
134
- onClick = { handleAddScrollToWallet }
153
+ onClick = { actionData . onClick }
135
154
>
136
- Add Scroll to Wallet
155
+ { actionData . label }
137
156
</ Button >
138
157
</ Paper >
139
158
</ Fade >
0 commit comments