From a5ceceeca344672d28bb7ed7afe55f9f91a772cd Mon Sep 17 00:00:00 2001 From: icarus Date: Sat, 27 Sep 2025 17:17:39 +0800 Subject: [PATCH] refactor(SessionItem): replace delete button as a div to avoid nested button --- .../home/Tabs/components/SessionItem.tsx | 90 ++++++++++--------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx index 5c0a9fce54..af0a8c037d 100644 --- a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx +++ b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx @@ -1,4 +1,4 @@ -import { Button, cn, Input, PressEvent, Tooltip } from '@heroui/react' +import { Button, cn, Input, Tooltip } from '@heroui/react' import { DeleteIcon, EditIcon } from '@renderer/components/Icons' import { isMac } from '@renderer/config/constant' import { useUpdateSession } from '@renderer/hooks/agents/useUpdateSession' @@ -11,7 +11,7 @@ import { SessionLabel } from '@renderer/pages/settings/AgentSettings/shared' import { AgentSessionEntity } from '@renderer/types' import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from '@renderer/ui/context-menu' import { XIcon } from 'lucide-react' -import { FC, memo, startTransition, useState } from 'react' +import React, { FC, memo, startTransition, useState } from 'react' import { useTranslation } from 'react-i18next' // const logger = loggerService.withContext('AgentItem') @@ -42,6 +42,49 @@ const SessionItem: FC = ({ session, agentId, isDisabled, isLoa } }) + const DeleteButton = () => { + return ( + +
{ + if (isConfirmingDeletion || e.ctrlKey || e.metaKey) { + onDelete() + } else { + startTransition(() => { + setIsConfirmingDeletion(true) + setTimeoutTimer( + 'confirmDeletion', + () => { + setIsConfirmingDeletion(false) + }, + 3000 + ) + }) + } + }}> + {isConfirmingDeletion ? ( + + ) : ( + + )} +
+
+ ) + } + const isActive = activeSessionId === session.id return ( @@ -75,48 +118,7 @@ const SessionItem: FC = ({ session, agentId, isDisabled, isLoa {!isEditing && (
- -
)}