feat(admin): add bottom navigation items and settings page to admin panel

This commit is contained in:
2026-04-22 20:12:18 -04:00
parent 739a0b2399
commit ccdd309414
9 changed files with 175 additions and 8 deletions
+24 -2
View File
@@ -20,7 +20,7 @@ function resolveIcon(iconNameOrComponent) {
return Icons.DashboardSquare03Icon;
}
const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledModules, navigationSections: serverNavigationSections }) => {
const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledModules, navigationSections: serverNavigationSections, bottomNavItems = [] }) => {
const pathname = usePathname();
const [collapsedSections, setCollapsedSections] = useState(() => {
@@ -190,9 +190,31 @@ const AdminSidebar = ({ isMobileMenuOpen, setIsMobileMenuOpen, appName, enabledM
</Link>
{/* Navigation */}
<nav className="flex-1 px-2 py-2 overflow-y-auto flex flex-col pb-12">
<nav className="flex-1 px-2 py-2 overflow-y-auto flex flex-col">
{navigationSections.map(renderNavSection)}
</nav>
{/* Bottom pinned items */}
{bottomNavItems.length > 0 && (
<div className="px-2 py-2 border-t border-neutral-200 dark:border-neutral-800/70 shrink-0">
{bottomNavItems.map((item) => {
const Icon = resolveIcon(item.icon);
return (
<Link
key={item.href}
href={item.href}
onClick={handleMobileLinkClick}
className={`${base} ${item.current ? parentActif : inactive}`}
>
<div className="flex items-center gap-2">
<Icon className="h-[15px] w-[15px] flex-shrink-0" />
<span>{item.name}</span>
</div>
</Link>
);
})}
</div>
)}
</div>
</>
);