9
9
VStack ,
10
10
toast ,
11
11
} from '@fuel-ui/react' ;
12
- import { useEffect , useMemo , useState } from 'react' ;
12
+ import { useMemo , useState } from 'react' ;
13
13
import { useCurrentTab } from '~/systems/CRX/hooks/useCurrentTab' ;
14
14
import { useConnection } from '~/systems/DApp/hooks/useConnection' ;
15
15
import { useOrigin } from '~/systems/DApp/hooks/useOrigin' ;
@@ -22,10 +22,6 @@ enum ConnectionStatus {
22
22
NoAccounts = 'NO_ACCOUNTS' ,
23
23
}
24
24
25
- export const getDismissKey = ( account : string , origin : string ) => {
26
- return `quick-account-connect-${ account } -${ origin } ` ;
27
- } ;
28
-
29
25
export const QuickAccountConnect = ( ) => {
30
26
const { account } = useCurrentAccount ( ) ;
31
27
const { currentTab } = useCurrentTab ( ) ;
@@ -34,7 +30,7 @@ export const QuickAccountConnect = () => {
34
30
origin : origin ?. full ,
35
31
} ) ;
36
32
37
- const [ dismissed , setDismissed ] = useState ( true ) ;
33
+ const [ dismissedAccount , setDismissedAccount ] = useState < string > ( '' ) ;
38
34
39
35
const status = useMemo < ConnectionStatus > ( ( ) => {
40
36
if ( ! account || ! connection ) {
@@ -48,6 +44,10 @@ export const QuickAccountConnect = () => {
48
44
return ConnectionStatus . OtherAccount ;
49
45
} , [ account , connection ] ) ;
50
46
47
+ const isDismissed = useMemo < boolean > ( ( ) => {
48
+ return account ?. address === dismissedAccount ;
49
+ } , [ account ?. address , dismissedAccount ] ) ;
50
+
51
51
const onConnect = async ( ) => {
52
52
if ( ! origin || ! account ) return ;
53
53
await ConnectionService . addAccountTo ( {
@@ -59,25 +59,15 @@ export const QuickAccountConnect = () => {
59
59
} ;
60
60
61
61
const onDismiss = ( ) => {
62
- if ( ! origin || ! account ) return ;
63
- setDismissed ( true ) ;
64
- if ( typeof localStorage !== 'undefined' ) {
65
- localStorage . setItem ( getDismissKey ( account . address , origin . full ) , 'true' ) ;
62
+ if ( account ?. address ) {
63
+ setDismissedAccount ( account . address ) ;
66
64
}
67
65
} ;
68
66
69
- useEffect ( ( ) => {
70
- if ( ! origin || ! account ) return ;
71
- const hasDismissed = localStorage . getItem (
72
- getDismissKey ( account . address , origin . full )
73
- ) ;
74
- setDismissed ( ! ! hasDismissed ) ;
75
- } , [ account , origin ] ) ;
76
-
77
67
return (
78
68
< Box
79
69
css = { styles . wrapper }
80
- data-open = { status === ConnectionStatus . OtherAccount && ! dismissed }
70
+ data-open = { status === ConnectionStatus . OtherAccount && ! isDismissed }
81
71
>
82
72
< Alert status = "info" css = { styles . alert } >
83
73
< Alert . Description as = "div" >
0 commit comments