Skip to content

Commit 7eedc25

Browse files
committed
maybe better unverified
Signed-off-by: Shea <nu@she-a.eu>
1 parent 24426bf commit 7eedc25

2 files changed

Lines changed: 19 additions & 12 deletions

File tree

src/app/components/message/modals/GlobalModalManager.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ export function GlobalModalManager() {
3434
focusTrapOptions={{
3535
initialFocus: false,
3636
onDeactivate: close,
37-
allowOutsideClick: (e) => {
38-
e.preventDefault();
37+
allowOutsideClick: (e: { preventDefault?: () => void }) => {
38+
if (e.preventDefault) e.preventDefault();
3939
close();
4040
return false;
4141
},

src/app/components/unverified-notice/UnverifiedNoticeBanner.tsx

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,42 @@ import * as css from './UnverifiedNoticeBanner.css';
44
import { useOpenSettings } from '$features/settings';
55
import { ShieldWarningIcon } from '@phosphor-icons/react';
66
import { useIsUnverified, useUnverifiedDevices } from '$pages/client/sidebar/UserMenuTab';
7-
import { atom, useAtom } from 'jotai';
7+
import { getLocalStorageItem, setLocalStorageItem } from '$state/utils/atomWithLocalStorage';
88
import { useEffect, useState } from 'react';
99

10-
const dismissedNotice = atom<boolean>(false);
11-
1210
export 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

Comments
 (0)