/** * Sidebar - Desktop side navigation panel. * * Renders a collapsible sidebar with navigation links. * Supports expanded and collapsed (icon-only) modes. */ import { useState, useCallback } from "react"; import { Link, useLocation } from "react-router-dom"; import PropTypes from "prop-types"; import { HomeIcon, CameraIcon, CloudIcon, CurrencyRupeeIcon, DocumentTextIcon, ChevronLeftIcon, ChevronRightIcon, } from "@heroicons/react/24/outline"; import { ROUTES, APP_NAME } from "@utils/constants"; const NAV_ITEMS = [ { label: "Home", path: ROUTES.HOME, Icon: HomeIcon }, { label: "Disease Detection", path: ROUTES.DISEASE_DETECTION, Icon: CameraIcon }, { label: "Weather", path: ROUTES.WEATHER, Icon: CloudIcon }, { label: "APMC Price", path: ROUTES.APMC, Icon: CurrencyRupeeIcon }, { label: "Schemes", path: ROUTES.SCHEMES, Icon: DocumentTextIcon }, ]; function Sidebar({ defaultCollapsed = false, className = "", }) { const [collapsed, setCollapsed] = useState(defaultCollapsed); const location = useLocation(); const toggle = useCallback(() => { setCollapsed((prev) => !prev); }, []); return ( ); } Sidebar.propTypes = { defaultCollapsed: PropTypes.bool, className: PropTypes.string, }; export default Sidebar;