({
) : (
<>
{stickyTopItem}
- {filteredItems.map((item, index) => (
- <>
- {renderItem(
- item,
- index,
- highlightedIndex,
- selectedItem,
- getItemProps,
- )}
- {numberOfRecentItems > 0 &&
- index === numberOfRecentItems - 1 && (
-
+ {filteredItems.map((item, index) => {
+ const key = itemKey(item);
+ return (
+
+ {renderItem(
+ item,
+ index,
+ highlightedIndex,
+ selectedItem,
+ getItemProps,
)}
- >
- ))}
+ {numberOfRecentItems > 0 &&
+ index === numberOfRecentItems - 1 && (
+
+ )}
+
+ );
+ })}
>
)}
diff --git a/frontend/src/components/features/microagent-management/microagent-management-accordion-title.tsx b/frontend/src/components/features/microagent-management/microagent-management-accordion-title.tsx
index 9858cfa8f9..d454cdc0e9 100644
--- a/frontend/src/components/features/microagent-management/microagent-management-accordion-title.tsx
+++ b/frontend/src/components/features/microagent-management/microagent-management-accordion-title.tsx
@@ -17,9 +17,10 @@ export function MicroagentManagementAccordionTitle({
{repository.full_name}
diff --git a/frontend/src/components/features/microagent-management/microagent-management-add-microagent-button.tsx b/frontend/src/components/features/microagent-management/microagent-management-add-microagent-button.tsx
index 9bcb282ce8..fb70f664a5 100644
--- a/frontend/src/components/features/microagent-management/microagent-management-add-microagent-button.tsx
+++ b/frontend/src/components/features/microagent-management/microagent-management-add-microagent-button.tsx
@@ -18,22 +18,32 @@ export function MicroagentManagementAddMicroagentButton({
setSelectedRepository,
} = useMicroagentManagementStore();
- const handleClick = (e: React.MouseEvent
) => {
+ const handleClick = (e: React.MouseEvent) => {
e.stopPropagation();
+ e.preventDefault();
setAddMicroagentModalVisible(!addMicroagentModalVisible);
setSelectedRepository(repository);
};
+ const handleKeyDown = (e: React.KeyboardEvent) => {
+ if (e.key === "Enter" || e.key === " ") {
+ e.stopPropagation();
+ e.preventDefault();
+ setAddMicroagentModalVisible(!addMicroagentModalVisible);
+ setSelectedRepository(repository);
+ }
+ };
+
return (
-
+ {t(I18nKey.COMMON$ADD_MICROAGENT)}
+
);
}
diff --git a/frontend/src/components/shared/buttons/tooltip-button.tsx b/frontend/src/components/shared/buttons/tooltip-button.tsx
index 7fea86f9a8..56b23e615c 100644
--- a/frontend/src/components/shared/buttons/tooltip-button.tsx
+++ b/frontend/src/components/shared/buttons/tooltip-button.tsx
@@ -16,6 +16,7 @@ export interface TooltipButtonProps {
disabled?: boolean;
placement?: TooltipProps["placement"];
showArrow?: boolean;
+ asSpan?: boolean;
}
export function TooltipButton({
@@ -31,6 +32,7 @@ export function TooltipButton({
disabled = false,
placement = "right",
showArrow = false,
+ asSpan = false,
}: TooltipButtonProps) {
const handleClick = (e: React.MouseEvent) => {
if (onClick && !disabled) {
@@ -39,22 +41,67 @@ export function TooltipButton({
}
};
- const buttonContent = (
-
- );
+ const isClickable = !!onClick && !disabled;
+ let buttonContent: React.ReactNode;
+ if (asSpan) {
+ if (isClickable) {
+ buttonContent = (
+ {
+ if (e.key === "Enter" || e.key === " ") {
+ onClick();
+ e.preventDefault();
+ }
+ }}
+ className={cn(
+ "hover:opacity-80",
+ disabled && "opacity-50 cursor-not-allowed",
+ className,
+ )}
+ aria-disabled={disabled}
+ >
+ {children}
+
+ );
+ } else {
+ buttonContent = (
+
+ {children}
+
+ );
+ }
+ } else {
+ buttonContent = (
+
+ );
+ }
let content;