| ... | @@ -373,7 +373,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP | ... | @@ -373,7 +373,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP |
| 373 | const threadMetaClassName = isConfirmingArchive | 373 | const threadMetaClassName = isConfirmingArchive |
| 374 | ? "pointer-events-none opacity-0" | 374 | ? "pointer-events-none opacity-0" |
| 375 | : !isThreadRunning | 375 | : !isThreadRunning |
| 376 | ? "pointer-events-none transition-opacity duration-150 group-hover/menu-sub-item:opacity-0 group-focus-within/menu-sub-item:opacity-0" | 376 | ? "pointer-events-none transition-opacity duration-150 max-sm:pr-6 group-hover/menu-sub-item:opacity-0 group-focus-within/menu-sub-item:opacity-0" |
| 377 | : "pointer-events-none"; | 377 | : "pointer-events-none"; |
| 378 | const clearConfirmingArchive = useCallback(() => { | 378 | const clearConfirmingArchive = useCallback(() => { |
| 379 | setConfirmingArchiveThreadKey((current) => (current === threadKey ? null : current)); | 379 | setConfirmingArchiveThreadKey((current) => (current === threadKey ? null : current)); |
| ... | @@ -605,7 +605,11 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP | ... | @@ -605,7 +605,11 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP |
| 605 | <TerminalIcon className={`size-3 ${terminalStatus.pulse ? "animate-pulse" : ""}`} /> | 605 | <TerminalIcon className={`size-3 ${terminalStatus.pulse ? "animate-pulse" : ""}`} /> |
| 606 | </span> | 606 | </span> |
| 607 | )} | 607 | )} |
| 608 | <div className="flex min-w-12 justify-end"> | 608 | <div |
| | 609 | className={`flex min-w-12 justify-end ${ |
| | 610 | isRemoteThread ? "max-sm:min-w-24" : "max-sm:min-w-20" |
| | 611 | }`} |
| | 612 | > |
| 609 | {isConfirmingArchive ? ( | 613 | {isConfirmingArchive ? ( |
| 610 | <button | 614 | <button |
| 611 | ref={handleConfirmArchiveRef} | 615 | ref={handleConfirmArchiveRef} |
| ... | @@ -621,13 +625,13 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP | ... | @@ -621,13 +625,13 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP |
| 621 | </button> | 625 | </button> |
| 622 | ) : !isThreadRunning ? ( | 626 | ) : !isThreadRunning ? ( |
| 623 | appSettingsConfirmThreadArchive ? ( | 627 | appSettingsConfirmThreadArchive ? ( |
| 624 | <div className="pointer-events-none absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity duration-150 group-hover/menu-sub-item:pointer-events-auto group-hover/menu-sub-item:opacity-100 group-focus-within/menu-sub-item:pointer-events-auto group-focus-within/menu-sub-item:opacity-100"> | 628 | <div className="pointer-events-none absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity duration-150 max-sm:pointer-events-auto max-sm:opacity-100 group-hover/menu-sub-item:pointer-events-auto group-hover/menu-sub-item:opacity-100 group-focus-within/menu-sub-item:pointer-events-auto group-focus-within/menu-sub-item:opacity-100"> |
| 625 | <button | 629 | <button |
| 626 | type="button" | 630 | type="button" |
| 627 | data-thread-selection-safe | 631 | data-thread-selection-safe |
| 628 | data-testid={`thread-archive-${thread.id}`} | 632 | data-testid={`thread-archive-${thread.id}`} |
| 629 | aria-label={`Archive ${thread.title}`} | 633 | aria-label={`Archive ${thread.title}`} |
| 630 | className="inline-flex size-5 cursor-pointer items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" | 634 | className="inline-flex size-5 cursor-pointer items-center justify-center text-muted-foreground/60 transition-colors hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" |
| 631 | onPointerDown={stopPropagationOnPointerDown} | 635 | onPointerDown={stopPropagationOnPointerDown} |
| 632 | onClick={handleStartArchiveConfirmation} | 636 | onClick={handleStartArchiveConfirmation} |
| 633 | > | 637 | > |
| ... | @@ -638,13 +642,13 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP | ... | @@ -638,13 +642,13 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP |
| 638 | <Tooltip> | 642 | <Tooltip> |
| 639 | <TooltipTrigger | 643 | <TooltipTrigger |
| 640 | render={ | 644 | render={ |
| 641 | <div className="pointer-events-none absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity duration-150 group-hover/menu-sub-item:pointer-events-auto group-hover/menu-sub-item:opacity-100 group-focus-within/menu-sub-item:pointer-events-auto group-focus-within/menu-sub-item:opacity-100"> | 645 | <div className="pointer-events-none absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity duration-150 max-sm:pointer-events-auto max-sm:opacity-100 group-hover/menu-sub-item:pointer-events-auto group-hover/menu-sub-item:opacity-100 group-focus-within/menu-sub-item:pointer-events-auto group-focus-within/menu-sub-item:opacity-100"> |
| 642 | <button | 646 | <button |
| 643 | type="button" | 647 | type="button" |
| 644 | data-thread-selection-safe | 648 | data-thread-selection-safe |
| 645 | data-testid={`thread-archive-${thread.id}`} | 649 | data-testid={`thread-archive-${thread.id}`} |
| 646 | aria-label={`Archive ${thread.title}`} | 650 | aria-label={`Archive ${thread.title}`} |
| 647 | className="inline-flex size-5 cursor-pointer items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" | 651 | className="inline-flex size-5 cursor-pointer items-center justify-center text-muted-foreground/60 transition-colors hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" |
| 648 | onPointerDown={stopPropagationOnPointerDown} | 652 | onPointerDown={stopPropagationOnPointerDown} |
| 649 | onClick={handleArchiveImmediateClick} | 653 | onClick={handleArchiveImmediateClick} |
| 650 | > | 654 | > |
| ... | @@ -665,11 +669,11 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP | ... | @@ -665,11 +669,11 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP |
| 665 | render={ | 669 | render={ |
| 666 | <span | 670 | <span |
| 667 | aria-label={threadEnvironmentLabel ?? "Remote"} | 671 | aria-label={threadEnvironmentLabel ?? "Remote"} |
| 668 | className="inline-flex items-center justify-center" | 672 | className="inline-flex h-5 items-center justify-center" |
| 669 | /> | 673 | /> |
| 670 | } | 674 | } |
| 671 | > | 675 | > |
| 672 | <CloudIcon className="size-3 text-muted-foreground/40" /> | 676 | <CloudIcon className="block size-3 text-muted-foreground/60" /> |
| 673 | </TooltipTrigger> | 677 | </TooltipTrigger> |
| 674 | <TooltipPopup side="top">{threadEnvironmentLabel}</TooltipPopup> | 678 | <TooltipPopup side="top">{threadEnvironmentLabel}</TooltipPopup> |
| 675 | </Tooltip> | 679 | </Tooltip> |
| ... | @@ -2025,7 +2029,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec | ... | @@ -2025,7 +2029,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec |
| 2025 | ? "Remote project" | 2029 | ? "Remote project" |
| 2026 | : "Available in multiple environments" | 2030 | : "Available in multiple environments" |
| 2027 | } | 2031 | } |
| 2028 | className="pointer-events-none absolute top-1 right-1.5 inline-flex size-5 items-center justify-center rounded-md text-muted-foreground/50 transition-opacity duration-150 max-sm:right-7 group-hover/project-header:opacity-0 group-focus-within/project-header:opacity-0 max-sm:group-hover/project-header:opacity-100 max-sm:group-focus-within/project-header:opacity-100" | 2032 | className="pointer-events-none absolute top-1 right-1.5 inline-flex size-5 items-center justify-center rounded-md text-muted-foreground/60 transition-opacity duration-150 max-sm:right-7 group-hover/project-header:opacity-0 group-focus-within/project-header:opacity-0 max-sm:group-hover/project-header:opacity-100 max-sm:group-focus-within/project-header:opacity-100" |
| 2029 | /> | 2033 | /> |
| 2030 | } | 2034 | } |
| 2031 | > | 2035 | > |
| ... | @@ -2044,7 +2048,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec | ... | @@ -2044,7 +2048,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec |
| 2044 | type="button" | 2048 | type="button" |
| 2045 | aria-label={`Create new thread in ${project.displayName}`} | 2049 | aria-label={`Create new thread in ${project.displayName}`} |
| 2046 | data-testid="new-thread-button" | 2050 | data-testid="new-thread-button" |
| 2047 | className="inline-flex size-5 cursor-pointer items-center justify-center rounded-md text-muted-foreground/70 hover:bg-secondary hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" | 2051 | className="inline-flex size-5 cursor-pointer items-center justify-center rounded-md text-muted-foreground/60 hover:bg-secondary hover:text-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" |
| 2048 | onClick={handleCreateThreadClick} | 2052 | onClick={handleCreateThreadClick} |
| 2049 | > | 2053 | > |
| 2050 | <SquarePenIcon className="size-3.5" /> | 2054 | <SquarePenIcon className="size-3.5" /> |
| ... | @@ -2420,9 +2424,13 @@ const SidebarChromeHeader = memo(function SidebarChromeHeader({ | ... | @@ -2420,9 +2424,13 @@ const SidebarChromeHeader = memo(function SidebarChromeHeader({ |
| 2420 | | 2424 | |
| 2421 | const SidebarChromeFooter = memo(function SidebarChromeFooter() { | 2425 | const SidebarChromeFooter = memo(function SidebarChromeFooter() { |
| 2422 | const navigate = useNavigate(); | 2426 | const navigate = useNavigate(); |
| | 2427 | const { isMobile, setOpenMobile } = useSidebar(); |
| 2423 | const handleSettingsClick = useCallback(() => { | 2428 | const handleSettingsClick = useCallback(() => { |
| | 2429 | if (isMobile) { |
| | 2430 | setOpenMobile(false); |
| | 2431 | } |
| 2424 | void navigate({ to: "/settings" }); | 2432 | void navigate({ to: "/settings" }); |
| 2425 | }, [navigate]); | 2433 | }, [isMobile, navigate, setOpenMobile]); |
| 2426 | | 2434 | |
| 2427 | return ( | 2435 | return ( |
| 2428 | <SidebarFooter className="p-2"> | 2436 | <SidebarFooter className="p-2"> |