mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
refactor(ui): enhance sidebar layout with responsive design and collapsed state
This commit is contained in:
@@ -525,34 +525,63 @@ function SidebarLogo() {
|
|||||||
<Loader2 className="animate-spin size-4" />
|
<Loader2 className="animate-spin size-4" />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<SidebarMenu>
|
<SidebarMenu
|
||||||
<SidebarMenuItem className="flex items-center gap-2">
|
className={cn(
|
||||||
|
"flex gap-2",
|
||||||
|
state === "collapsed"
|
||||||
|
? "flex-col"
|
||||||
|
: "flex-row justify-between items-center",
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
{/* Organization Logo and Selector */}
|
||||||
|
<SidebarMenuItem>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<SidebarMenuButton
|
<SidebarMenuButton
|
||||||
size="lg"
|
size={state === "collapsed" ? "sm" : "lg"}
|
||||||
className="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
className={cn(
|
||||||
|
"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground",
|
||||||
|
state === "collapsed" &&
|
||||||
|
"flex justify-center items-center p-2 h-10 w-10 mx-auto",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
<div className="flex items-center gap-2">
|
<div
|
||||||
<div className="flex size-6 items-center justify-center rounded-sm border">
|
className={cn(
|
||||||
|
"flex items-center gap-2",
|
||||||
|
state === "collapsed" && "justify-center",
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className={cn(
|
||||||
|
"flex items-center justify-center rounded-sm border",
|
||||||
|
"size-6",
|
||||||
|
)}
|
||||||
|
>
|
||||||
<Logo
|
<Logo
|
||||||
className={cn(
|
className={cn(
|
||||||
"transition-all",
|
"transition-all",
|
||||||
state === "collapsed" ? "size-6" : "size-10",
|
state === "collapsed" ? "size-4" : "size-5",
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col items-start">
|
<div
|
||||||
|
className={cn(
|
||||||
|
"flex flex-col items-start",
|
||||||
|
state === "collapsed" && "hidden",
|
||||||
|
)}
|
||||||
|
>
|
||||||
<p className="text-sm font-medium leading-none">
|
<p className="text-sm font-medium leading-none">
|
||||||
{activeOrganization?.name ?? "Select Organization"}
|
{activeOrganization?.name ?? "Select Organization"}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ChevronsUpDown className="ml-auto" />
|
<ChevronsUpDown
|
||||||
|
className={cn("ml-auto", state === "collapsed" && "hidden")}
|
||||||
|
/>
|
||||||
</SidebarMenuButton>
|
</SidebarMenuButton>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent
|
<DropdownMenuContent
|
||||||
className=" rounded-lg"
|
className="rounded-lg"
|
||||||
align="start"
|
align="start"
|
||||||
side={isMobile ? "bottom" : "right"}
|
side={isMobile ? "bottom" : "right"}
|
||||||
sideOffset={4}
|
sideOffset={4}
|
||||||
@@ -627,10 +656,20 @@ function SidebarLogo() {
|
|||||||
)}
|
)}
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
|
</SidebarMenuItem>
|
||||||
|
|
||||||
|
{/* Notification Bell */}
|
||||||
|
<SidebarMenuItem className={cn(state === "collapsed" && "mt-2")}>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<Button variant="ghost" size="icon" className="relative">
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
size="icon"
|
||||||
|
className={cn(
|
||||||
|
"relative",
|
||||||
|
state === "collapsed" && "h-8 w-8 p-1.5 mx-auto",
|
||||||
|
)}
|
||||||
|
>
|
||||||
<Bell className="size-4" />
|
<Bell className="size-4" />
|
||||||
{invitations && invitations.length > 0 && (
|
{invitations && invitations.length > 0 && (
|
||||||
<span className="absolute -top-0 -right-0 flex size-4 items-center justify-center rounded-full bg-blue-500 text-xs text-white">
|
<span className="absolute -top-0 -right-0 flex size-4 items-center justify-center rounded-full bg-blue-500 text-xs text-white">
|
||||||
|
|||||||
Reference in New Issue
Block a user