// ============================================================================ // Chatbot Header - Chatbot Conversation History Nav // ============================================================================ import React from 'react'; // Import PatternFly components import { MenuToggleElement, Tooltip, MenuToggle, Dropdown, DropdownProps } from '@patternfly/react-core'; import EllipsisIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; export interface ChatbotConversationHistoryDropdownProps extends Omit { /** Dropdown items rendered in conversation settings dropdown */ menuItems: React.ReactNode; /** Optional classname applied to conversation settings dropdown */ menuClassName?: string; /** Tooltip content and aria-label applied to conversation settings dropdown */ label?: string; /** Callback for when user selects item. */ onSelect?: (event?: React.MouseEvent, value?: string | number) => void; } export const ChatbotConversationHistoryDropdown: React.FunctionComponent = ({ menuItems, menuClassName, onSelect, label }: ChatbotConversationHistoryDropdownProps) => { const [isOpen, setIsOpen] = React.useState(false); const toggle = (toggleRef: React.Ref) => ( setIsOpen(!isOpen)} role="menuitem" > ); return ( { onSelect?.(props); setIsOpen((prev) => !prev); }} onOpenChange={(isOpen) => setIsOpen(isOpen)} popperProps={{ position: 'right' }} shouldFocusToggleOnSelect shouldFocusFirstItemOnOpen toggle={toggle} > {menuItems} ); }; export default ChatbotConversationHistoryDropdown;