Skip to content

Commit 3bbb78b

Browse files
Merge pull request #1377 from Aarya-Chaudhari/logout-confirmation
Replace browser logout confirmation with custom modal
2 parents 8735bb9 + 3ffaa48 commit 3bbb78b

File tree

2 files changed

+219
-188
lines changed

2 files changed

+219
-188
lines changed

client/src/shared/components/organisms/sidebar/hooks/index.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,27 @@ import {
1212
} from '../../../../../app/routes/constants/routes';
1313
import { useAuth } from '../../../../hooks/use-auth';
1414

15-
1615
const logoutStyle = {
1716
marginTop: 'auto',
1817
marginBottom: 0,
1918
};
2019

2120
const useSidebar = () => {
2221
const [showExpandedView, setShowExpandedView] = useState(false);
22+
const [showLogoutModal, setShowLogoutModal] = useState(false);
23+
2324
const { logout } = useAuth();
2425

26+
// open modal
27+
const handleLogoutClick = useCallback(() => {
28+
setShowLogoutModal(true);
29+
}, []);
30+
31+
// confirm logout
32+
const confirmLogout = useCallback(() => {
33+
setShowLogoutModal(false);
34+
logout();
35+
}, [logout]);
2536

2637
const handleMouseHoverIn = useCallback(() => {
2738
setShowExpandedView(true);
@@ -31,7 +42,6 @@ const useSidebar = () => {
3142
setShowExpandedView(false);
3243
}, []);
3344

34-
3545
const sidebarItems = useMemo(() => {
3646
const items: SideBarItemsType[] = [
3747
{
@@ -68,27 +78,33 @@ const useSidebar = () => {
6878
screenName: ROUTES_PAGE_V1.SETTINGS,
6979
},
7080
];
71-
81+
7282
const secondaryItems: SideBarItemsType[] = [
7383
{
7484
icon: PowerSettingsNewIcon,
75-
onClick: logout,
85+
onClick: handleLogoutClick,
7686
title: 'Logout',
7787
style: logoutStyle,
7888
},
7989
];
90+
8091
return {
8192
items: items.filter(({ disable }) => !disable),
8293
secondaryItems: secondaryItems.filter(({ disable }) => !disable),
8394
};
84-
}, [logout]);
85-
95+
}, [handleLogoutClick]);
8696

8797
return {
8898
showExpandedView,
8999
handleMouseHoverIn,
90100
handleMouseHoverOut,
91101
sidebarItems,
102+
103+
// modal controls
104+
showLogoutModal,
105+
setShowLogoutModal,
106+
confirmLogout,
92107
};
93108
};
109+
94110
export default useSidebar;

0 commit comments

Comments
 (0)