refactor: remove docked state management from InboxSidebar and LayoutDataProvider; enhance DropdownMenu in ComposerAction with separator for improved UI clarity

This commit is contained in:
Anish Sarkar 2026-03-10 15:20:51 +05:30
parent 9d37b66f2f
commit 469e28958b
4 changed files with 7 additions and 74 deletions

View file

@ -40,8 +40,6 @@ interface InboxProps {
totalUnreadCount: number;
comments: TabDataSource;
status: TabDataSource;
isDocked?: boolean;
onDockedChange?: (docked: boolean) => void;
}
interface LayoutShellProps {
@ -308,19 +306,6 @@ export function LayoutShell({
isResizing={isResizing}
/>
{/* Docked Inbox Sidebar - renders as flex sibling between sidebar and content */}
{inbox?.isDocked && (
<InboxSidebar
open={inbox.isOpen}
onOpenChange={inbox.onOpenChange}
comments={inbox.comments}
status={inbox.status}
totalUnreadCount={inbox.totalUnreadCount}
isDocked={inbox.isDocked}
onDockedChange={inbox.onDockedChange}
/>
)}
{/* Docked Documents Sidebar - renders as flex sibling between sidebar and content */}
{documentsPanel?.isDocked && (
<DocumentsSidebar
@ -339,16 +324,14 @@ export function LayoutShell({
</div>
</main>
{/* Floating Inbox Sidebar - positioned absolutely on top of content */}
{inbox && !inbox.isDocked && (
{/* Inbox Sidebar - slide-out panel */}
{inbox && (
<InboxSidebar
open={inbox.isOpen}
onOpenChange={inbox.onOpenChange}
comments={inbox.comments}
status={inbox.status}
totalUnreadCount={inbox.totalUnreadCount}
isDocked={false}
onDockedChange={inbox.onDockedChange}
/>
)}

View file

@ -10,7 +10,6 @@ import {
CheckCheck,
CheckCircle2,
ChevronLeft,
ChevronRight,
History,
Inbox,
LayoutGrid,
@ -148,8 +147,6 @@ interface InboxSidebarProps {
status: TabDataSource;
totalUnreadCount: number;
onCloseMobileSidebar?: () => void;
isDocked?: boolean;
onDockedChange?: (docked: boolean) => void;
}
export function InboxSidebar({
@ -159,8 +156,6 @@ export function InboxSidebar({
status,
totalUnreadCount,
onCloseMobileSidebar,
isDocked = false,
onDockedChange,
}: InboxSidebarProps) {
const t = useTranslations("sidebar");
const router = useRouter();
@ -821,35 +816,6 @@ export function InboxSidebar({
</TooltipContent>
</Tooltip>
)}
{!isMobile && onDockedChange && (
<Tooltip>
<TooltipTrigger asChild>
<Button
variant="ghost"
size="icon"
className="h-8 w-8 rounded-full"
onClick={() => {
if (isDocked) {
onDockedChange(false);
onOpenChange(false);
} else {
onDockedChange(true);
}
}}
>
{isDocked ? (
<ChevronLeft className="h-4 w-4 text-muted-foreground" />
) : (
<ChevronRight className="h-4 w-4 text-muted-foreground" />
)}
<span className="sr-only">{isDocked ? "Collapse panel" : "Expand panel"}</span>
</Button>
</TooltipTrigger>
<TooltipContent className="z-80">
{isDocked ? "Collapse panel" : "Expand panel"}
</TooltipContent>
</Tooltip>
)}
</div>
</div>
@ -1092,17 +1058,6 @@ export function InboxSidebar({
</>
);
if (isDocked && open && !isMobile) {
return (
<aside
className="h-full w-[360px] shrink-0 bg-sidebar text-sidebar-foreground flex flex-col border-r"
aria-label={t("inbox") || "Inbox"}
>
{inboxContent}
</aside>
);
}
return (
<SidebarSlideOutPanel open={open} onOpenChange={onOpenChange} ariaLabel={t("inbox") || "Inbox"}>
{inboxContent}