diff --git a/client/src/components/Sidebar/Sidebar.jsx b/client/src/components/Sidebar/Sidebar.jsx index 57b311f..70d35cd 100644 --- a/client/src/components/Sidebar/Sidebar.jsx +++ b/client/src/components/Sidebar/Sidebar.jsx @@ -9,7 +9,7 @@ import { HiUsers } from "react-icons/hi2"; import { VscThreeBars } from "react-icons/vsc"; import { MdOutlineSecurity } from "react-icons/md"; import { IoPersonCircleSharp } from "react-icons/io5"; -import { useState, useEffect } from "react"; +import { useState, useEffect, useMemo } from "react"; import { DASHBOARD_VIEWS } from "@/constants/viewKeys"; export default function Sidebar({ view, onChangeView, darkMode, setDarkMode }) { @@ -19,22 +19,21 @@ export default function Sidebar({ view, onChangeView, darkMode, setDarkMode }) { const styles = recipe(); const { toggleColorMode } = useColorMode(); - let buttons = []; - // Different Sidebar Button Options for Settings View - if (view === "settings" || view === "personal" || view === "security") { - buttons = [ - {icon: IoPersonCircleSharp, name: "Personal Info", view: "personal"}, - {icon: MdOutlineSecurity, name: "Security", view: "security"}, - ] - } else { - buttons = [ + const buttons = useMemo(() => { + if (["settings", "personal", "security"].includes(view)) { + return [ + {icon: IoPersonCircleSharp, name: "Personal Info", view: "personal"}, + {icon: MdOutlineSecurity, name: "Security", view: "security"}, + ]; + } + return [ {icon: FaHome, name: "Home", view: "mydashboard"}, {icon: FaGlobeAmericas, name: "Global Map", view: "global"}, {icon: FaMapMarkerAlt, name: "Regional Map", view: "regional"}, {icon: FaVolcano, name: "Volcano", view: "volcano"}, {icon: HiUsers, name: "Admin", view: "admin"} ]; - }; + }, [view]); const toggleSidebar = () => { if (isOpen) setIsOpen(false); diff --git a/client/src/constants/viewKeys.js b/client/src/constants/viewKeys.js index 02cf9fc..987eb9e 100644 --- a/client/src/constants/viewKeys.js +++ b/client/src/constants/viewKeys.js @@ -12,4 +12,7 @@ export const VIEW_LABELS = { regional: "Regional Map", volcano: "Volcano", admin: "Admin", + settings: "Settings", + personal: "Personal Info", + security: "Security", }; \ No newline at end of file