import { chakra, useRecipe, useSlotRecipe, Box, Button, createIcon, CloseButton, IconButton, Stack, useDisclosure, Tooltip } from "@chakra-ui/react"; import { ColorModeButton } from "@/components/ui/color-mode"; import { FaVolcano } from "react-icons/fa6"; import { RxHamburgerMenu } from "react-icons/rx"; import { useState } from "react"; // ICONS export const PushPin = createIcon({ displayName: "PushPin", viewBox: "0 0 24 24", fill: "none", path: ( <> ), }); export const Globe = createIcon({ displayName: "Globe", viewBox: "0 0 24 24", fill: "currentColor", path: ( <> ), }); export const MapMarker = createIcon({ displayName: "MapMarker", viewBox: "0 0 24 24", fill: "none", path: ( <> ), }); export const Users = createIcon({ displayName: "Users", viewBox: "0 0 24 24", fill: "currentColor", path: ( <> ), }); export default function Sidebar() { const [isOpen, setIsOpen] = 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 = () => { 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 */} {/* */} ); }