diff --git a/client/src/components/Sidebar.jsx b/client/src/components/Sidebar.jsx index 80d0604..b094f9a 100644 --- a/client/src/components/Sidebar.jsx +++ b/client/src/components/Sidebar.jsx @@ -11,7 +11,7 @@ export const PushPin = createIcon({ fill: "none", path: ( <> - + ), }); @@ -19,12 +19,12 @@ export const PushPin = createIcon({ export const Globe = createIcon({ displayName: "Globe", viewBox: "0 0 24 24", - fill: "none", + fill: "currentColor", path: ( <> - - - + + + ), }); @@ -35,8 +35,8 @@ export const MapMarker = createIcon({ fill: "none", path: ( <> - - + + ), }); @@ -44,42 +44,48 @@ export const MapMarker = createIcon({ export const Users = createIcon({ displayName: "Users", viewBox: "0 0 24 24", - fill: "none", + fill: "currentColor", path: ( <> - - - - - - + + + + + + ), }); export default function Sidebar() { const [isOpen, setIsOpen] = useState(true); - const [hasFinishedClosing, setHasFinishedClosing] = useState(true); + const [hasFinishedTransitions, setFinishedTransitions] = useState(false); + + const buttons = [ + {icon: PushPin, name: "Dashboard"}, + {icon: Globe, name: "Global Map"}, + {icon: MapMarker, name: "Regional Map"}, + {icon: FaVolcano, name: "Volcano"}, + {icon: Users, name: "Admin"} + ]; const [activeButton, setActiveButton] = useState(0) const recipe = useSlotRecipe({ key: "sidebar" }); const styles = recipe(); const toggleSidebar = () => { - if (isOpen) { - setHasFinishedClosing(false); - setTimeout(() => setIsOpen(false), 10); // Kick off transition - setTimeout(() => setHasFinishedClosing(true), 400); // Match sidebar transition duration - } else { - setIsOpen(true); - setHasFinishedClosing(true); - } + setFinishedTransitions(false); + if (isOpen) setIsOpen(false); + else setIsOpen(true); + setTimeout(() => setFinishedTransitions(true), 400); // Match sidebar transition duration }; + + return ( + + {buttons.map((button, idx) => { + const Icon = button.icon; + return ( + + ) + })} {/* Dashboard */} - + {/* */} {/* Global Map */} - + {/* */} {/* Regional Map */} - + {/* */} {/* Volcano */} - + {/* */} {/* Admin */} - + {/* */} ); -} - -// THIS CODE WORKS, SAVE IN CASE OF EMERGENCY -// Needed to refactor in order allow transitions to work properly - -// export default function Sidebar () { -// const [isOpen, setIsOpen] = useState(true); -// const [activeButton, setActiveButton] = useState("Dashboard") - -// return ( -// <> -// {isOpen && ( -// -// {/* setIsOpen(!isOpen)}> */} -// {/* setIsOpen(!isOpen)}> */} -// -// -// -// -// -// -// -// )} - -// {!isOpen && ( -// -// setIsOpen(!isOpen)}> -// -// -// setActiveButton("Dashboard")} bg={activeButton === "Dashboard" ? "#A4B6B6" : "transparent"}> -// -// -// setActiveButton("Global")} bg={activeButton === "Global" ? "#A4B6B6" : "transparent"}> -// -// -// setActiveButton("Regional")} bg={activeButton === "Regional" ? "#A4B6B6" : "transparent"}> -// -// -// setActiveButton("Volcano")} bg={activeButton === "Volcano" ? "#A4B6B6" : "transparent"}> -// -// -// setActiveButton("Admin")} bg={activeButton === "Admin" ? "#A4B6B6" : "transparent"}> -// -// -// -// )} - -// -// ); -// } +} \ No newline at end of file