From 6c631465569b3b754fd88c1f8695e2ece12da5ba Mon Sep 17 00:00:00 2001 From: icarus Date: Sat, 27 Sep 2025 13:46:26 +0800 Subject: [PATCH] refactor(SessionItem): replace className with isActive prop for better readability Use isActive prop instead of className to control active state styling Add dynamic background color based on topicPosition setting --- .../home/Tabs/components/SessionItem.tsx | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx index f23c7b2cc7..19eb3e6212 100644 --- a/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx +++ b/src/renderer/src/pages/home/Tabs/components/SessionItem.tsx @@ -3,6 +3,7 @@ import { DeleteIcon, EditIcon } from '@renderer/components/Icons' import { useUpdateSession } from '@renderer/hooks/agents/useUpdateSession' import { useInPlaceEdit } from '@renderer/hooks/useInPlaceEdit' import { useRuntime } from '@renderer/hooks/useRuntime' +import { useSettings } from '@renderer/hooks/useSettings' import { SessionSettingsPopup } from '@renderer/pages/settings/AgentSettings' import { SessionLabel } from '@renderer/pages/settings/AgentSettings/shared' import { AgentSessionEntity } from '@renderer/types' @@ -46,7 +47,7 @@ const SessionItem: FC = ({ session, agentId, isDisabled, isLoa isDisabled={isDisabled} isLoading={isLoading} onPress={onPress} - className={cn(isActive ? 'active' : '')} + isActive={isActive} onDoubleClick={() => startEdit(session.name ?? '')}> {isEditing && ( @@ -96,22 +97,31 @@ const SessionItem: FC = ({ session, agentId, isDisabled, isLoa ) } -const ButtonContainer: React.FC> = ({ className, children, ...props }) => ( - -) +const ButtonContainer: React.FC & { isActive?: boolean }> = ({ + isActive, + className, + children, + ...props +}) => { + const { topicPosition } = useSettings() + const activeBg = topicPosition === 'left' ? 'bg-[var(--color-list-item)]' : 'bg-foreground-100' + return ( + + ) +} const SessionLabelContainer: React.FC> = ({ className, ...props }) => (