Spaces:
Build error
Build error
OpenHands
/
frontend
/src
/components
/features
/conversation-panel
/conversation-card-context-menu.tsx
| import { useClickOutsideElement } from "#/hooks/use-click-outside-element"; | |
| import { cn } from "#/utils/utils"; | |
| import { ContextMenu } from "../context-menu/context-menu"; | |
| import { ContextMenuListItem } from "../context-menu/context-menu-list-item"; | |
| interface ConversationCardContextMenuProps { | |
| onClose: () => void; | |
| onDelete?: (event: React.MouseEvent<HTMLButtonElement>) => void; | |
| onEdit?: (event: React.MouseEvent<HTMLButtonElement>) => void; | |
| onDisplayCost?: (event: React.MouseEvent<HTMLButtonElement>) => void; | |
| onShowAgentTools?: (event: React.MouseEvent<HTMLButtonElement>) => void; | |
| onDownloadViaVSCode?: (event: React.MouseEvent<HTMLButtonElement>) => void; | |
| position?: "top" | "bottom"; | |
| } | |
| export function ConversationCardContextMenu({ | |
| onClose, | |
| onDelete, | |
| onEdit, | |
| onDisplayCost, | |
| onShowAgentTools, | |
| onDownloadViaVSCode, | |
| position = "bottom", | |
| }: ConversationCardContextMenuProps) { | |
| const ref = useClickOutsideElement<HTMLUListElement>(onClose); | |
| return ( | |
| <ContextMenu | |
| ref={ref} | |
| testId="context-menu" | |
| className={cn( | |
| "right-0 absolute mt-3", | |
| position === "top" && "bottom-full", | |
| position === "bottom" && "top-full", | |
| )} | |
| > | |
| {onDelete && ( | |
| <ContextMenuListItem testId="delete-button" onClick={onDelete}> | |
| Delete | |
| </ContextMenuListItem> | |
| )} | |
| {onEdit && ( | |
| <ContextMenuListItem testId="edit-button" onClick={onEdit}> | |
| Edit Title | |
| </ContextMenuListItem> | |
| )} | |
| {onDownloadViaVSCode && ( | |
| <ContextMenuListItem | |
| testId="download-vscode-button" | |
| onClick={onDownloadViaVSCode} | |
| > | |
| Download via VS Code | |
| </ContextMenuListItem> | |
| )} | |
| {onDisplayCost && ( | |
| <ContextMenuListItem | |
| testId="display-cost-button" | |
| onClick={onDisplayCost} | |
| > | |
| Display Cost | |
| </ContextMenuListItem> | |
| )} | |
| {onShowAgentTools && ( | |
| <ContextMenuListItem | |
| testId="show-agent-tools-button" | |
| onClick={onShowAgentTools} | |
| > | |
| Show Agent Tools & Metadata | |
| </ContextMenuListItem> | |
| )} | |
| </ContextMenu> | |
| ); | |
| } | |