@@ -4,35 +4,42 @@ import * as css from './UnverifiedNoticeBanner.css';
44import { useOpenSettings } from '$features/settings' ;
55import { ShieldWarningIcon } from '@phosphor-icons/react' ;
66import { useIsUnverified , useUnverifiedDevices } from '$pages/client/sidebar/UserMenuTab' ;
7- import { atom , useAtom } from 'jotai ' ;
7+ import { getLocalStorageItem , setLocalStorageItem } from '$state/utils/atomWithLocalStorage ' ;
88import { useEffect , useState } from 'react' ;
99
10- const dismissedNotice = atom < boolean > ( false ) ;
11-
1210export function UnverifiedNoticeBanner ( ) {
1311 const openSettings = useOpenSettings ( ) ;
14- const [ isDismissedNotice , setDismissedNotice ] = useAtom ( dismissedNotice ) ;
1512
1613 const isUnverified = useIsUnverified ( ) ;
17- const unverifiedDeviceCount = useUnverifiedDevices ( ) ?? 0 ;
14+ const unverifiedDeviceCount = useUnverifiedDevices ( ) ;
1815 const hasUnverified =
1916 isUnverified || ( unverifiedDeviceCount !== undefined && unverifiedDeviceCount > 0 ) ;
2017 const [ dismissCount , setDismissCount ] = useState ( unverifiedDeviceCount ) ;
2118
19+ const [ isDismissedNotice , setIsDismissedNotice ] = useState (
20+ getLocalStorageItem ( 'dismissNotice' , false )
21+ ) ;
2222 useEffect ( ( ) => {
23- if ( unverifiedDeviceCount > 0 && dismissCount < unverifiedDeviceCount )
24- setDismissedNotice ( false ) ;
23+ if (
24+ unverifiedDeviceCount &&
25+ dismissCount &&
26+ unverifiedDeviceCount > 0 &&
27+ dismissCount < unverifiedDeviceCount
28+ ) {
29+ setLocalStorageItem ( 'dismissNotice' , false ) ;
30+ setIsDismissedNotice ( false ) ;
31+ }
2532 setDismissCount ( unverifiedDeviceCount ) ;
26- } , [ unverifiedDeviceCount , setDismissedNotice , dismissCount ] ) ;
33+ } , [ unverifiedDeviceCount , dismissCount ] ) ;
2734
2835 if ( ! hasUnverified || isDismissedNotice ) return null ;
2936
3037 const handleVerify = ( ) => {
3138 openSettings ( 'devices' ) ;
3239 } ;
33-
3440 const handleDismiss = ( ) => {
35- setDismissedNotice ( true ) ;
41+ setLocalStorageItem ( 'dismissNotice' , true ) ;
42+ setIsDismissedNotice ( true ) ;
3643 } ;
3744
3845 return (
0 commit comments