Merge branch 'main-fix'

This commit is contained in:
xintaofei
2026-04-01 13:41:33 +08:00

View File

@@ -1,14 +1,6 @@
"use client" "use client"
import { import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"
memo,
Fragment,
useCallback,
useEffect,
useMemo,
useRef,
useState,
} from "react"
import { Plus, RefreshCw, X } from "lucide-react" import { Plus, RefreshCw, X } from "lucide-react"
import { useTranslations } from "next-intl" import { useTranslations } from "next-intl"
import { toast } from "sonner" import { toast } from "sonner"
@@ -63,11 +55,6 @@ import {
ContextMenuSeparator, ContextMenuSeparator,
ContextMenuTrigger, ContextMenuTrigger,
} from "@/components/ui/context-menu" } from "@/components/ui/context-menu"
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from "@/components/ui/resizable"
interface ConversationTabViewProps { interface ConversationTabViewProps {
tabId: string tabId: string
@@ -1205,54 +1192,31 @@ export function ConversationDetailPanel() {
return ( return (
<ContextMenu> <ContextMenu>
<ContextMenuTrigger asChild> <ContextMenuTrigger asChild>
<div className="relative h-full min-h-0 overflow-hidden">
{canTile ? (
<ResizablePanelGroup direction="horizontal">
{tabs.map((tab, index) => {
const active = tab.id === activeTabId
return (
<Fragment key={tab.id}>
{index > 0 && <ResizableHandle withHandle />}
<ResizablePanel
id={`tile-${tab.id}`}
order={index}
minSize={15}
>
<div <div
className={cn( className={cn(
"h-full", "relative h-full min-h-0 overflow-hidden",
active canTile && "flex flex-row"
? "bg-gradient-to-b from-muted/50 to-transparent"
: ""
)} )}
onPointerDownCapture={() => {
if (!active) switchTab(tab.id)
}}
> >
<ConversationTabView {tabs.map((tab, index) => {
tabId={tab.id}
conversationId={tab.conversationId}
agentType={tab.agentType}
workingDir={tab.workingDir ?? folder?.path}
isActive={active}
reloadSignal={reloadByTabId[tab.id] ?? 0}
/>
</div>
</ResizablePanel>
</Fragment>
)
})}
</ResizablePanelGroup>
) : (
tabs.map((tab) => {
const active = tab.id === activeTabId const active = tab.id === activeTabId
return ( return (
<div <div
key={tab.id} key={tab.id}
className={ className={cn(
active canTile
? cn(
"relative h-full min-w-[200px] flex-1 overflow-hidden",
index > 0 && "border-l border-border",
active &&
"bg-gradient-to-b from-muted/50 to-transparent"
)
: active
? "h-full" ? "h-full"
: "absolute inset-0 invisible pointer-events-none" : "absolute inset-0 invisible pointer-events-none"
)}
onPointerDownCapture={
canTile && !active ? () => switchTab(tab.id) : undefined
} }
> >
<ConversationTabView <ConversationTabView
@@ -1265,8 +1229,7 @@ export function ConversationDetailPanel() {
/> />
</div> </div>
) )
}) })}
)}
</div> </div>
</ContextMenuTrigger> </ContextMenuTrigger>
<ContextMenuContent> <ContextMenuContent>