mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
feat(frontend): display text label when items are selected across all canvas views (#11636)
This commit is contained in:
parent
c544ea1187
commit
6411d4df94
@ -5,12 +5,16 @@ type ConversationTabNavProps = {
|
||||
icon: ComponentType<{ className: string }>;
|
||||
onClick(): void;
|
||||
isActive?: boolean;
|
||||
label?: string;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
export function ConversationTabNav({
|
||||
icon: Icon,
|
||||
onClick,
|
||||
isActive,
|
||||
label,
|
||||
className,
|
||||
}: ConversationTabNavProps) {
|
||||
return (
|
||||
<button
|
||||
@ -19,18 +23,21 @@ export function ConversationTabNav({
|
||||
onClick();
|
||||
}}
|
||||
className={cn(
|
||||
"p-1 rounded-md cursor-pointer",
|
||||
"flex items-center gap-2 rounded-md cursor-pointer",
|
||||
"pl-1.5 pr-2 py-1",
|
||||
"text-[#9299AA] bg-[#0D0F11]",
|
||||
isActive && "bg-[#25272D] text-white",
|
||||
isActive
|
||||
? "hover:text-white hover:bg-tertiary"
|
||||
: "hover:text-white hover:bg-[#0D0F11]",
|
||||
isActive
|
||||
? "focus-within:text-white focus-within:bg-tertiary"
|
||||
: "focus-within:text-[#9299AA] focus-within:bg-[#0D0F11]",
|
||||
isActive ? "focus-within:text-white" : "focus-within:text-[#9299AA]",
|
||||
className,
|
||||
)}
|
||||
>
|
||||
<Icon className={cn("w-5 h-5 text-inherit")} />
|
||||
<Icon className={cn("w-5 h-5 text-inherit flex-shrink-0")} />
|
||||
{isActive && label && (
|
||||
<span className="text-sm font-medium whitespace-nowrap">{label}</span>
|
||||
)}
|
||||
</button>
|
||||
);
|
||||
}
|
||||
|
||||
@ -92,6 +92,7 @@ export function ConversationTabs() {
|
||||
onClick: () => onTabSelected("editor"),
|
||||
tooltipContent: t(I18nKey.COMMON$CHANGES),
|
||||
tooltipAriaLabel: t(I18nKey.COMMON$CHANGES),
|
||||
label: t(I18nKey.COMMON$CHANGES),
|
||||
},
|
||||
{
|
||||
isActive: isTabActive("vscode"),
|
||||
@ -99,6 +100,7 @@ export function ConversationTabs() {
|
||||
onClick: () => onTabSelected("vscode"),
|
||||
tooltipContent: <VSCodeTooltipContent />,
|
||||
tooltipAriaLabel: t(I18nKey.COMMON$CODE),
|
||||
label: t(I18nKey.COMMON$CODE),
|
||||
},
|
||||
{
|
||||
isActive: isTabActive("terminal"),
|
||||
@ -106,6 +108,8 @@ export function ConversationTabs() {
|
||||
onClick: () => onTabSelected("terminal"),
|
||||
tooltipContent: t(I18nKey.COMMON$TERMINAL),
|
||||
tooltipAriaLabel: t(I18nKey.COMMON$TERMINAL),
|
||||
label: t(I18nKey.COMMON$TERMINAL),
|
||||
className: "pl-2",
|
||||
},
|
||||
{
|
||||
isActive: isTabActive("served"),
|
||||
@ -113,6 +117,7 @@ export function ConversationTabs() {
|
||||
onClick: () => onTabSelected("served"),
|
||||
tooltipContent: t(I18nKey.COMMON$APP),
|
||||
tooltipAriaLabel: t(I18nKey.COMMON$APP),
|
||||
label: t(I18nKey.COMMON$APP),
|
||||
},
|
||||
{
|
||||
isActive: isTabActive("browser"),
|
||||
@ -120,6 +125,7 @@ export function ConversationTabs() {
|
||||
onClick: () => onTabSelected("browser"),
|
||||
tooltipContent: t(I18nKey.COMMON$BROWSER),
|
||||
tooltipAriaLabel: t(I18nKey.COMMON$BROWSER),
|
||||
label: t(I18nKey.COMMON$BROWSER),
|
||||
},
|
||||
];
|
||||
|
||||
@ -132,7 +138,15 @@ export function ConversationTabs() {
|
||||
>
|
||||
{tabs.map(
|
||||
(
|
||||
{ icon, onClick, isActive, tooltipContent, tooltipAriaLabel },
|
||||
{
|
||||
icon,
|
||||
onClick,
|
||||
isActive,
|
||||
tooltipContent,
|
||||
tooltipAriaLabel,
|
||||
label,
|
||||
className,
|
||||
},
|
||||
index,
|
||||
) => (
|
||||
<ChatActionTooltip
|
||||
@ -144,6 +158,8 @@ export function ConversationTabs() {
|
||||
icon={icon}
|
||||
onClick={onClick}
|
||||
isActive={isActive}
|
||||
label={label}
|
||||
className={className}
|
||||
/>
|
||||
</ChatActionTooltip>
|
||||
),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user