From e234d5fd9cc17036b5db710d02d062d197e44675 Mon Sep 17 00:00:00 2001 From: poduck Date: Fri, 28 Nov 2025 21:29:02 -0500 Subject: [PATCH] feat: Add Plugins dropdown menu to Business sidebar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added Plugins collapsible menu with 3 items: - Plugin Marketplace (/plugins/marketplace) - My Plugins (/plugins/my-plugins) - Plugin Docs (/help/plugins) - Moved Plugin Docs from Help dropdown to Plugins dropdown - Added Plug, ShoppingBag, Package icons from lucide-react - Added translations for plugin navigation items - Auto-opens dropdown when on /plugins/* routes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- frontend/src/components/Sidebar.tsx | 78 ++++++++++++++++++++++------- frontend/src/i18n/locales/en.json | 5 +- 2 files changed, 63 insertions(+), 20 deletions(-) diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index f5d41e8..8dba1ae 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -18,7 +18,10 @@ import { BookOpen, FileQuestion, LifeBuoy, - Zap + Zap, + Plug, + ShoppingBag, + Package } from 'lucide-react'; import { Business, User } from '../types'; import { useLogout } from '../hooks/useAuth'; @@ -37,6 +40,7 @@ const Sidebar: React.FC = ({ business, user, isCollapsed, toggleCo const { role } = user; const logoutMutation = useLogout(); const [isHelpOpen, setIsHelpOpen] = useState(location.pathname.startsWith('/help') || location.pathname === '/support'); + const [isPluginsOpen, setIsPluginsOpen] = useState(location.pathname.startsWith('/plugins')); const getNavClass = (path: string, exact: boolean = false, disabled: boolean = false) => { const isActive = exact @@ -182,6 +186,52 @@ const Sidebar: React.FC = ({ business, user, isCollapsed, toggleCo {!isCollapsed && {t('nav.staff')}} + + {/* Plugins Dropdown */} +
+ + {isPluginsOpen && !isCollapsed && ( +
+ + + {t('nav.pluginMarketplace', 'Marketplace')} + + + + {t('nav.myPlugins', 'My Plugins')} + + + + {t('nav.pluginDocs', 'Plugin Docs')} + +
+ )} +
+ {/* Help Dropdown */}