import { Dropdown, MenuToggle, MenuToggleCheckbox, DropdownItem, DropdownList, Divider, MenuToggleElement } from '@patternfly/react-core'; import { useRef, useState } from 'react'; export const DropdownSplitButtonText: React.FunctionComponent = () => { const [isOpen, setIsOpen] = useState(false); const toggleRef = useRef(null); const onFocus = () => { if (!toggleRef.current) { return; } const toggleButton = toggleRef.current.querySelector('button[aria-expanded]'); toggleButton?.focus(); }; const onSelect = () => { setIsOpen(false); onFocus(); }; const onToggleClick = () => { setIsOpen(!isOpen); }; return ( setIsOpen(isOpen)} toggle={(toggleRefCallback: React.Ref) => ( { // Handle both callback ref and useRef if (typeof toggleRefCallback === 'function') { toggleRefCallback(node); } else if (toggleRefCallback) { (toggleRefCallback as React.MutableRefObject).current = node; } (toggleRef as React.MutableRefObject).current = node; }} splitButtonItems={[ ]} aria-label="Dropdown with checkbox split button" onClick={onToggleClick} isExpanded={isOpen} /> )} isOpen={isOpen} > Action ev.preventDefault()} > Link Disabled Action Disabled Link Aria-disabled Link Separated Action ev.preventDefault()}> Separated Link ); };