diff --git a/apps/admin/app/(main)/layout.tsx b/apps/admin/app/(main)/layout.tsx
index ea23a63..d318fce 100644
--- a/apps/admin/app/(main)/layout.tsx
+++ b/apps/admin/app/(main)/layout.tsx
@@ -1,38 +1,289 @@
+'use client';
+
import Link from 'next/link';
+import { usePathname } from 'next/navigation';
+import { useState, useEffect } from 'react';
+import { Button } from '@workspace/ui/components/button';
+import { Badge } from '@workspace/ui/components/badge';
+import {
+ LayoutDashboard,
+ Users,
+ Briefcase,
+ Menu,
+ X,
+ LogOut,
+ Settings,
+ Bell,
+ Search,
+ ChevronDown
+} from 'lucide-react';
const navLinks = [
- { href: '/', label: 'Dashboard' },
- { href: '/students', label: 'Students' },
- { href: '/jobs', label: 'Jobs' },
+ {
+ href: '/',
+ label: 'Dashboard',
+ icon: LayoutDashboard,
+ description: 'Overview and analytics'
+ },
+ {
+ href: '/students',
+ label: 'Students',
+ icon: Users,
+ description: 'Manage student profiles'
+ },
+ {
+ href: '/jobs',
+ label: 'Jobs',
+ icon: Briefcase,
+ description: 'Job listings and applications'
+ },
];
export default function MainLayout({ children }: { children: React.ReactNode }) {
+ const pathname = usePathname();
+ const [isScrolled, setIsScrolled] = useState(false);
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
+ const [isProfileDropdownOpen, setIsProfileDropdownOpen] = useState(false);
+
+ // Handle scroll effect
+ useEffect(() => {
+ const handleScroll = () => {
+ setIsScrolled(window.scrollY > 10);
+ };
+ window.addEventListener('scroll', handleScroll);
+ return () => window.removeEventListener('scroll', handleScroll);
+ }, []);
+
+ // Close mobile menu when route changes
+ useEffect(() => {
+ setIsMobileMenuOpen(false);
+ }, [pathname]);
+
return (
- {/* Sticky top navbar */}
-
-
-
-

-
NextPlacement
-
-