diff options
Diffstat (limited to 'components/project/ProjectHeader.tsx')
| -rw-r--r-- | components/project/ProjectHeader.tsx | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/components/project/ProjectHeader.tsx b/components/project/ProjectHeader.tsx new file mode 100644 index 00000000..34a3f43e --- /dev/null +++ b/components/project/ProjectHeader.tsx @@ -0,0 +1,84 @@ +// components/project/ProjectHeader.tsx +'use client'; + +import { useSession } from 'next-auth/react'; +import { Bell, Search, HelpCircle, User } from 'lucide-react'; +import { Button } from '@/components/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; +import { Badge } from '@/components/ui/badge'; + +export function ProjectHeader() { + const { data: session } = useSession(); + + return ( + <header className="border-b bg-white sticky top-0 z-50"> + <div className="container mx-auto px-4"> + <div className="flex items-center justify-between h-16"> + {/* 로고 */} + <div className="flex items-center gap-6"> + <div className="flex items-center gap-2"> + <div className="h-8 w-8 bg-blue-600 rounded-lg flex items-center justify-center"> + <span className="text-white font-bold">FM</span> + </div> + <span className="text-xl font-semibold">File Manager</span> + </div> + </div> + + {/* 우측 메뉴 */} + <div className="flex items-center gap-3"> + {/* 검색 */} + <Button variant="ghost" size="icon"> + <Search className="h-5 w-5" /> + </Button> + + {/* 알림 */} + <Button variant="ghost" size="icon" className="relative"> + <Bell className="h-5 w-5" /> + <span className="absolute top-0 right-0 h-2 w-2 bg-red-500 rounded-full" /> + </Button> + + {/* 도움말 */} + <Button variant="ghost" size="icon"> + <HelpCircle className="h-5 w-5" /> + </Button> + + {/* 사용자 메뉴 */} + <DropdownMenu> + <DropdownMenuTrigger asChild> + <Button variant="ghost" className="gap-2"> + <div className="h-8 w-8 bg-gray-200 rounded-full flex items-center justify-center"> + <User className="h-4 w-4" /> + </div> + <span className="hidden md:inline">{session?.user?.name}</span> + </Button> + </DropdownMenuTrigger> + <DropdownMenuContent align="end" className="w-56"> + <DropdownMenuLabel> + <div> + <p className="font-medium">{session?.user?.name}</p> + <p className="text-sm text-muted-foreground">{session?.user?.email}</p> + </div> + </DropdownMenuLabel> + <DropdownMenuSeparator /> + <DropdownMenuItem>프로필</DropdownMenuItem> + <DropdownMenuItem>설정</DropdownMenuItem> + <DropdownMenuItem>팀 관리</DropdownMenuItem> + <DropdownMenuSeparator /> + <DropdownMenuItem className="text-red-600"> + 로그아웃 + </DropdownMenuItem> + </DropdownMenuContent> + </DropdownMenu> + </div> + </div> + </div> + </header> + ); +}
\ No newline at end of file |
