mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-07 22:10:21 +08:00
refactor(ChatNavbar): extract InfoTag component and add agent name display
- Extract repeated div styling into reusable InfoTag component - Add agent name to the info items display - Replace inline styles with tailwind classes for consistency
This commit is contained in:
parent
90264f6ec9
commit
b0213742f4
@ -1,3 +1,4 @@
|
|||||||
|
import { cn } from '@heroui/react'
|
||||||
import { NavbarHeader } from '@renderer/components/app/Navbar'
|
import { NavbarHeader } from '@renderer/components/app/Navbar'
|
||||||
import { HStack } from '@renderer/components/Layout'
|
import { HStack } from '@renderer/components/Layout'
|
||||||
import SearchPopup from '@renderer/components/Popups/SearchPopup'
|
import SearchPopup from '@renderer/components/Popups/SearchPopup'
|
||||||
@ -152,8 +153,9 @@ const HeaderNavbar: FC<Props> = ({ activeAssistant, setActiveAssistant, activeTo
|
|||||||
}
|
}
|
||||||
|
|
||||||
const SessionWorkspaceMeta: FC<{ agentId: string; sessionId: string }> = ({ agentId, sessionId }) => {
|
const SessionWorkspaceMeta: FC<{ agentId: string; sessionId: string }> = ({ agentId, sessionId }) => {
|
||||||
|
const { agent } = useAgent(agentId)
|
||||||
const { session } = useSession(agentId, sessionId)
|
const { session } = useSession(agentId, sessionId)
|
||||||
if (!session) {
|
if (!session || !agent) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,28 +168,25 @@ const SessionWorkspaceMeta: FC<{ agentId: string; sessionId: string }> = ({ agen
|
|||||||
|
|
||||||
const infoItems: ReactNode[] = []
|
const infoItems: ReactNode[] = []
|
||||||
|
|
||||||
if (firstAccessiblePath) {
|
const InfoTag: FC<{ text: string; className?: string }> = ({ text, className }) => (
|
||||||
infoItems.push(
|
|
||||||
<div
|
|
||||||
key="path"
|
|
||||||
className="rounded-medium border border-default-200 px-2 py-1 text-foreground-500 text-xs dark:text-foreground-400"
|
|
||||||
title={firstAccessiblePath}
|
|
||||||
style={{ maxWidth: 240 }}>
|
|
||||||
<span className="block truncate">{firstAccessiblePath}</span>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
infoItems.push(
|
|
||||||
<div
|
<div
|
||||||
key="permission-mode"
|
className={cn(
|
||||||
className="rounded-medium border border-default-200 px-2 py-1 text-foreground-500 text-xs dark:text-foreground-400"
|
'rounded-medium border border-default-200 px-2 py-1 text-foreground-500 text-xs dark:text-foreground-400',
|
||||||
title={permissionModeLabel}
|
className
|
||||||
style={{ maxWidth: 200 }}>
|
)}
|
||||||
<span className="block truncate">{permissionModeLabel}</span>
|
title={text}>
|
||||||
|
<span className="block truncate">{text}</span>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
infoItems.push(<InfoTag key="name" text={agent.name ?? ''} />)
|
||||||
|
|
||||||
|
if (firstAccessiblePath) {
|
||||||
|
infoItems.push(<InfoTag key="path" text={firstAccessiblePath} className="max-w-60" />)
|
||||||
|
}
|
||||||
|
|
||||||
|
infoItems.push(<InfoTag key="permission-mode" text={permissionModeLabel} className="max-w-50" />)
|
||||||
|
|
||||||
if (infoItems.length === 0) {
|
if (infoItems.length === 0) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user