diff options
| author | FifthWit <fifthwitbusiness@gmail.com> | 2025-01-30 10:59:23 -0600 |
|---|---|---|
| committer | FifthWit <fifthwitbusiness@gmail.com> | 2025-01-30 10:59:23 -0600 |
| commit | 4627dec1be33a4dafbaf95be626ad6fee9207b69 (patch) | |
| tree | e126bc2bd9db6bdb836ae6e314cc4c6fb350d46a /frontend/src/components/Sidebar.tsx | |
| parent | fixed eslint issues with using == isntead of === (diff) | |
| download | lphub-4627dec1be33a4dafbaf95be626ad6fee9207b69.tar.gz lphub-4627dec1be33a4dafbaf95be626ad6fee9207b69.tar.bz2 lphub-4627dec1be33a4dafbaf95be626ad6fee9207b69.zip | |
fixed useCallback() funcs
Diffstat (limited to 'frontend/src/components/Sidebar.tsx')
| -rw-r--r-- | frontend/src/components/Sidebar.tsx | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index 71b79be..8216cff 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | import React from 'react'; | 1 | import React, { useCallback } from 'react'; |
| 2 | import { Link, useLocation } from 'react-router-dom'; | 2 | import { Link, useLocation } from 'react-router-dom'; |
| 3 | 3 | ||
| 4 | import { | 4 | import { |
| @@ -39,22 +39,7 @@ const Sidebar: React.FC<SidebarProps> = ({ | |||
| 39 | const location = useLocation(); | 39 | const location = useLocation(); |
| 40 | const path = location.pathname; | 40 | const path = location.pathname; |
| 41 | 41 | ||
| 42 | const handle_sidebar_click = (clicked_sidebar_idx: number) => { | 42 | const _handle_sidebar_hide = useCallback(() => { |
| 43 | const btn = document.querySelectorAll('button.sidebar-button'); | ||
| 44 | if (isSidebarOpen) { | ||
| 45 | setSidebarOpen(false); | ||
| 46 | _handle_sidebar_hide(); | ||
| 47 | } | ||
| 48 | // clusterfuck | ||
| 49 | btn.forEach((e, i) => { | ||
| 50 | btn[i].classList.remove('sidebar-button-selected'); | ||
| 51 | btn[i].classList.add('sidebar-button-deselected'); | ||
| 52 | }); | ||
| 53 | btn[clicked_sidebar_idx].classList.add('sidebar-button-selected'); | ||
| 54 | btn[clicked_sidebar_idx].classList.remove('sidebar-button-deselected'); | ||
| 55 | }; | ||
| 56 | |||
| 57 | const _handle_sidebar_hide = () => { | ||
| 58 | var btn = document.querySelectorAll( | 43 | var btn = document.querySelectorAll( |
| 59 | 'button.sidebar-button' | 44 | 'button.sidebar-button' |
| 60 | ) as NodeListOf<HTMLElement>; | 45 | ) as NodeListOf<HTMLElement>; |
| @@ -115,7 +100,25 @@ const Sidebar: React.FC<SidebarProps> = ({ | |||
| 115 | side.style.zIndex = '0'; | 100 | side.style.zIndex = '0'; |
| 116 | }, 300); | 101 | }, 300); |
| 117 | } | 102 | } |
| 118 | }; | 103 | }, [isSidebarOpen, profile]); |
| 104 | |||
| 105 | const handle_sidebar_click = useCallback( | ||
| 106 | (clicked_sidebar_idx: number) => { | ||
| 107 | const btn = document.querySelectorAll('button.sidebar-button'); | ||
| 108 | if (isSidebarOpen) { | ||
| 109 | setSidebarOpen(false); | ||
| 110 | _handle_sidebar_hide(); | ||
| 111 | } | ||
| 112 | // clusterfuck | ||
| 113 | btn.forEach((e, i) => { | ||
| 114 | btn[i].classList.remove('sidebar-button-selected'); | ||
| 115 | btn[i].classList.add('sidebar-button-deselected'); | ||
| 116 | }); | ||
| 117 | btn[clicked_sidebar_idx].classList.add('sidebar-button-selected'); | ||
| 118 | btn[clicked_sidebar_idx].classList.remove('sidebar-button-deselected'); | ||
| 119 | }, | ||
| 120 | [isSidebarOpen, _handle_sidebar_hide] | ||
| 121 | ); | ||
| 119 | 122 | ||
| 120 | const _handle_sidebar_lock = () => { | 123 | const _handle_sidebar_lock = () => { |
| 121 | if (!isSidebarLocked) { | 124 | if (!isSidebarLocked) { |
| @@ -147,7 +150,7 @@ const Sidebar: React.FC<SidebarProps> = ({ | |||
| 147 | } else if (path.includes('about')) { | 150 | } else if (path.includes('about')) { |
| 148 | handle_sidebar_click(6); | 151 | handle_sidebar_click(6); |
| 149 | } | 152 | } |
| 150 | }, [path]); | 153 | }, [path, handle_sidebar_click]); |
| 151 | 154 | ||
| 152 | return ( | 155 | return ( |
| 153 | <div id="sidebar"> | 156 | <div id="sidebar"> |