1
1
import React from 'react' ;
2
+ import { useNavigate , useLocation } from 'react-router-dom' ;
2
3
import useBreakpoint from 'use-breakpoint' ;
3
4
4
5
import { track } from '../../../analytics' ;
5
6
import { ReactComponent as StarkGateLogo } from '../../../assets/img/starkgate.svg' ;
6
7
import constants from '../../../config/constants' ;
7
8
import { Breakpoint } from '../../../enums' ;
8
9
import { useColors } from '../../../hooks' ;
10
+ import { useLogin } from '../../../providers/AppProvider' ;
9
11
import { useMenu } from '../../../providers/MenuProvider' ;
10
12
import { useIsL1 , useIsL2 } from '../../../providers/TransferProvider' ;
11
13
import { useL1Wallet , useL2Wallet , useWallets } from '../../../providers/WalletsProvider' ;
12
14
import utils from '../../../utils' ;
13
15
import { Tab , WalletButton } from '../../UI' ;
14
16
import styles from './Header.module.scss' ;
15
- import { CHAIN_TXT , TAB_DISCORD_TXT , TAB_FAQ_TXT } from './Header.strings' ;
17
+ import { CHAIN_TXT , TAB_DISCORD_TXT , TAB_FAQ_TXT , TAB_TERMS_TXT } from './Header.strings' ;
16
18
17
19
const { DISCORD_LINK_URL } = constants ;
18
20
19
21
export const Header = ( ) => {
20
- const { chainName, isConnected} = useWallets ( ) ;
21
- const { showAccountMenu, showTransferMenu, showFaqMenu} = useMenu ( ) ;
22
+ const navigate = useNavigate ( ) ;
23
+ const { pathname} = useLocation ( ) ;
24
+ const { chainName} = useWallets ( ) ;
25
+ const { showAccountMenu, showTransferMenu} = useMenu ( ) ;
22
26
const [ , swapToL1 ] = useIsL1 ( ) ;
23
27
const [ , swapToL2 ] = useIsL2 ( ) ;
24
28
const { account : l1Account , isConnected : isL1AccountConnected , config : l1Config } = useL1Wallet ( ) ;
25
29
const { account : l2Account , isConnected : isL2AccountConnected , config : l2Config } = useL2Wallet ( ) ;
26
30
const { breakpoint} = useBreakpoint ( Breakpoint ) ;
27
31
const { colorDiscord, colorWhiteOp50} = useColors ( ) ;
32
+ const { isLoggedIn} = useLogin ( ) ;
33
+
34
+ const maybeNavigateToIndex = ( ) => {
35
+ pathname !== '/' && navigate ( '/' ) ;
36
+ } ;
28
37
29
38
const onL2WalletButtonClick = ( ) => {
39
+ maybeNavigateToIndex ( ) ;
30
40
swapToL2 ( ) ;
31
41
showAccountMenu ( ) ;
32
42
} ;
33
43
34
44
const onL1WalletButtonClick = ( ) => {
45
+ maybeNavigateToIndex ( ) ;
35
46
swapToL1 ( ) ;
36
47
showAccountMenu ( ) ;
37
48
} ;
38
49
39
50
const onLogoClick = ( ) => {
51
+ maybeNavigateToIndex ( ) ;
40
52
showTransferMenu ( ) ;
41
53
} ;
42
54
55
+ const onTabFaqClick = ( ) => {
56
+ navigate ( 'faq' , { replace : true } ) ;
57
+ } ;
58
+
59
+ const onTabTermsClick = ( ) => {
60
+ navigate ( 'terms' , { replace : true } ) ;
61
+ } ;
62
+
43
63
const onTabDiscordClick = ( ) => {
44
64
track ( TrackEvent . DISCORD_TAB_CLICK ) ;
45
65
utils . browser . openInNewTab ( DISCORD_LINK_URL ) ;
@@ -51,13 +71,14 @@ export const Header = () => {
51
71
< div className = { utils . object . toClasses ( styles . logo , 'row' ) } onClick = { onLogoClick } >
52
72
< StarkGateLogo />
53
73
</ div >
54
- { isConnected && (
74
+ { isLoggedIn && (
55
75
< div className = { utils . object . toClasses ( styles . chain , 'row' ) } > { CHAIN_TXT ( chainName ) } </ div >
56
76
) }
57
77
</ div >
58
78
59
79
< div className = { utils . object . toClasses ( styles . right , 'row' ) } >
60
- < Tab color = { colorWhiteOp50 } label = { TAB_FAQ_TXT } onClick = { showFaqMenu } />
80
+ < Tab color = { colorWhiteOp50 } label = { TAB_TERMS_TXT } onClick = { onTabTermsClick } />
81
+ < Tab color = { colorWhiteOp50 } label = { TAB_FAQ_TXT } onClick = { onTabFaqClick } />
61
82
< Tab color = { colorDiscord } label = { TAB_DISCORD_TXT } onClick = { onTabDiscordClick } />
62
83
{ isL1AccountConnected && (
63
84
< WalletButton
0 commit comments