Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ exports[`With popover opened 1`] = `
</span>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle"
data-ouia-component-id="OUIA-Generated-MenuToggle-:r10:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export const FormState = () => {
isOpen={isSelectOpen}
toggle={(toggleRef) => (
<MenuToggle
aria-haspopup="listbox"
ref={toggleRef}
onClick={(isOpen) => setIsSelectOpen(isOpen)}
isExpanded={isSelectOpen}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ export const LoginPageLanguageSelect: React.FunctionComponent = () => {
aria-label="Select Language"
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
<MenuToggle
aria-haspopup="listbox"
ref={toggleRef}
onClick={() => setIsHeaderUtilsOpen(!isHeaderUtilsOpen)}
isExpanded={isHeaderUtilsOpen}
Expand Down
9 changes: 8 additions & 1 deletion packages/react-core/src/components/MenuToggle/MenuToggle.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ export interface MenuToggleProps
badge?: BadgeProps | React.ReactNode;
/** Adds styling which affects the size of the menu toggle */
size?: 'default' | 'sm';
/** Indicates what type of popup will be triggered by the menu toggle. A value of true is the same as a value of "menu". */
'aria-haspopup'?: 'menu' | 'listbox' | boolean;
/** @hide Forwarded ref */
innerRef?: React.Ref<MenuToggleElement>;
/** Value to overwrite the randomly generated data-ouia-component-id. It will always target the toggle button. */
Expand All @@ -95,7 +97,8 @@ class MenuToggleBase extends Component<MenuToggleProps> {
isDocked: false,
isTextExpanded: false,
size: 'default',
ouiaSafe: true
ouiaSafe: true,
'aria-haspopup': 'menu'
};

render() {
Expand All @@ -121,6 +124,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
innerRef,
onClick,
'aria-label': ariaLabel,
'aria-haspopup': ariaHasPopup,
ouiaId,
ouiaSafe,
size,
Expand Down Expand Up @@ -171,6 +175,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
type="button"
className={css(styles.menuToggleButton)}
aria-expanded={isExpanded}
aria-haspopup={ariaHasPopup}
onClick={onClick}
aria-label={ariaLabel || 'Menu toggle'}
tabIndex={-1}
Expand Down Expand Up @@ -231,6 +236,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
className={css(styles.menuToggleButton, children && styles.modifiers.text)}
type="button"
aria-expanded={isExpanded}
aria-haspopup={ariaHasPopup}
aria-label={ariaLabel}
disabled={isDisabled}
onClick={onClick}
Expand All @@ -249,6 +255,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
className={css(commonStyles, isCircle && isPlain && styles.modifiers.circle)}
type="button"
aria-label={ariaLabel}
aria-haspopup={ariaHasPopup}
aria-expanded={isExpanded}
ref={innerRef as React.Ref<HTMLButtonElement>}
disabled={isDisabled}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ exports[`Old Snapshot tests - remove when refactoring passes additional classes
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle test-class"
data-ouia-component-id="OUIA-Generated-MenuToggle-:r3:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -44,6 +45,7 @@ exports[`Old Snapshot tests - remove when refactoring renders successfully 1`] =
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle"
data-ouia-component-id="OUIA-Generated-MenuToggle-:r1:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -84,6 +86,7 @@ exports[`Old Snapshot tests - remove when refactoring shows badge 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle"
data-ouia-component-id="OUIA-Generated-MenuToggle-:rh:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -133,6 +136,7 @@ exports[`Old Snapshot tests - remove when refactoring shows icon 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle"
data-ouia-component-id="OUIA-Generated-MenuToggle-:rf:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -190,6 +194,7 @@ exports[`Old Snapshot tests - remove when refactoring shows isDisabled 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle pf-m-disabled"
data-ouia-component-id="OUIA-Generated-MenuToggle-:r7:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -231,6 +236,7 @@ exports[`Old Snapshot tests - remove when refactoring shows isExpanded 1`] = `
<DocumentFragment>
<button
aria-expanded="true"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle pf-m-expanded"
data-ouia-component-id="OUIA-Generated-MenuToggle-:r5:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -271,6 +277,7 @@ exports[`Old Snapshot tests - remove when refactoring shows isPlain 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle pf-m-plain"
data-ouia-component-id="OUIA-Generated-MenuToggle-plain-:rb:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -302,6 +309,7 @@ exports[`Old Snapshot tests - remove when refactoring shows isPrimary 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle pf-m-primary"
data-ouia-component-id="OUIA-Generated-MenuToggle-primary-:r9:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down Expand Up @@ -342,6 +350,7 @@ exports[`Old Snapshot tests - remove when refactoring shows plain text 1`] = `
<DocumentFragment>
<button
aria-expanded="false"
aria-haspopup="menu"
class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-:rd:"
data-ouia-component-type="PF6/MenuToggle"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.sv

export const MenuToggleAvatarText: React.FunctionComponent = () => (
<Fragment>
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />}>Ned Username</MenuToggle>{' '}
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />} isExpanded>
<MenuToggle aria-haspopup={false} icon={<Avatar src={imgAvatar} alt="avatar" />}>
Ned Username
</MenuToggle>{' '}
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />} isDisabled>
<MenuToggle aria-haspopup={false} icon={<Avatar src={imgAvatar} alt="avatar" />} isExpanded>
Ned Username
</MenuToggle>{' '}
<MenuToggle aria-haspopup={false} icon={<Avatar src={imgAvatar} alt="avatar" />} isDisabled>
Ned Username
</MenuToggle>
</Fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@ import { MenuToggle, Badge } from '@patternfly/react-core';

export const MenuToggleBadge: React.FunctionComponent = () => (
<Fragment>
<MenuToggle badge={<Badge>4 selected</Badge>}>Count</MenuToggle>
<MenuToggle variant="plainText" badge={<Badge screenReaderText="additional items">4</Badge>} />
<MenuToggle aria-haspopup={false} badge={<Badge>4 selected</Badge>}>
Count
</MenuToggle>
<MenuToggle
aria-haspopup={false}
variant="plainText"
badge={<Badge screenReaderText="additional items">4</Badge>}
/>
</Fragment>
);
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleCollapsed: React.FunctionComponent = () => <MenuToggle>Collapsed</MenuToggle>;
export const MenuToggleCollapsed: React.FunctionComponent = () => (
<MenuToggle aria-haspopup={false}>Collapsed</MenuToggle>
);
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import RhUiAddIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-icon';

export const MenuToggleCustomIcon: React.FC = () => (
<Fragment>
<MenuToggle icon={<RhUiAddIcon />} variant="primary">
<MenuToggle aria-haspopup={false} icon={<RhUiAddIcon />} variant="primary">
Icon
</MenuToggle>{' '}
<MenuToggle icon={<RhUiAddIcon />} variant="secondary">
<MenuToggle aria-haspopup={false} icon={<RhUiAddIcon />} variant="secondary">
Icon
</MenuToggle>{' '}
<MenuToggle icon={<RhUiAddIcon />} variant="secondary" isDisabled>
<MenuToggle aria-haspopup={false} icon={<RhUiAddIcon />} variant="secondary" isDisabled>
Icon
</MenuToggle>
</Fragment>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleDisabled: React.FunctionComponent = () => <MenuToggle isDisabled>Disabled</MenuToggle>;
export const MenuToggleDisabled: React.FunctionComponent = () => (
<MenuToggle aria-haspopup={false} isDisabled>
Disabled
</MenuToggle>
);
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleExpanded: React.FunctionComponent = () => <MenuToggle isExpanded>Expanded</MenuToggle>;
export const MenuToggleExpanded: React.FunctionComponent = () => (
<MenuToggle aria-haspopup={false} isExpanded>
Expanded
</MenuToggle>
);
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleFullHeight: React.FunctionComponent = () => (
<div style={{ height: '80px' }}>
<MenuToggle isFullHeight aria-label="Full height menu toggle">
<MenuToggle aria-haspopup={false} isFullHeight aria-label="Full height menu toggle">
Full height
</MenuToggle>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleFullWidth: React.FunctionComponent = () => (
<MenuToggle isFullWidth aria-label="Full width menu toggle">
<MenuToggle aria-haspopup={false} isFullWidth aria-label="Full width menu toggle">
Full width
</MenuToggle>
);
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleInForm = (): JSX.Element => (
<MenuToggle isInForm aria-label="Menu toggle in a form">
<MenuToggle aria-haspopup={false} isInForm aria-label="Menu toggle in a form">
In form
</MenuToggle>
);
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuTogglePlaceholder: React.FunctionComponent = () => (
<MenuToggle isPlaceholder>Placeholder text</MenuToggle>
<MenuToggle aria-haspopup={false} isPlaceholder>
Placeholder text
</MenuToggle>
);
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons

export const MenuTogglePlainCircle: React.FunctionComponent = () => (
<Fragment>
<MenuToggle isCircle icon={<RhUiEllipsisVerticalFillIcon />} variant="plain" aria-label="plain circle kebab" />{' '}
<MenuToggle
aria-haspopup={false}
isCircle
icon={<RhUiEllipsisVerticalFillIcon />}
variant="plain"
aria-label="plain circle kebab"
/>{' '}
<MenuToggle
isCircle
icon={<RhUiEllipsisVerticalFillIcon />}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,25 @@ import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons

export const MenuTogglePlainIcon: React.FunctionComponent = () => (
<Fragment>
<MenuToggle icon={<RhUiEllipsisVerticalFillIcon />} variant="plain" aria-label="plain kebab" />{' '}
<MenuToggle icon={<RhUiEllipsisVerticalFillIcon />} variant="plain" isExpanded aria-label="plain expanded kebab" />{' '}
<MenuToggle icon={<RhUiEllipsisVerticalFillIcon />} variant="plain" isDisabled aria-label="disabled plain kebab" />
<MenuToggle
aria-haspopup={false}
icon={<RhUiEllipsisVerticalFillIcon />}
variant="plain"
aria-label="plain kebab"
/>{' '}
<MenuToggle
aria-haspopup={false}
icon={<RhUiEllipsisVerticalFillIcon />}
variant="plain"
isExpanded
aria-label="plain expanded kebab"
/>{' '}
<MenuToggle
aria-haspopup={false}
icon={<RhUiEllipsisVerticalFillIcon />}
variant="plain"
isDisabled
aria-label="disabled plain kebab"
/>
</Fragment>
);
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import { MenuToggle } from '@patternfly/react-core';

export const MenuTogglePlainTextLabel: React.FunctionComponent = () => (
<Fragment>
<MenuToggle variant="plainText" isDisabled aria-label="Disabled plain menu toggle">
<MenuToggle aria-haspopup={false} variant="plainText" isDisabled aria-label="Disabled plain menu toggle">
Disabled
</MenuToggle>{' '}
<MenuToggle variant="plainText" aria-label="Plain menu toggle">
<MenuToggle aria-haspopup={false} variant="plainText" aria-label="Plain menu toggle">
Custom text
</MenuToggle>{' '}
<MenuToggle variant="plainText" isExpanded aria-label="Expanded plain menu toggle">
<MenuToggle aria-haspopup={false} variant="plainText" isExpanded aria-label="Expanded plain menu toggle">
Custom text (expanded)
</MenuToggle>
</Fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleSettings: React.FunctionComponent = () => (
<Fragment>
<MenuToggle isSettings>Settings</MenuToggle> <MenuToggle isSettings variant="plain" aria-label="Settings" />
<MenuToggle aria-haspopup={false} isSettings>
Settings
</MenuToggle>{' '}
<MenuToggle aria-haspopup={false} isSettings variant="plain" aria-label="Settings" />
</Fragment>
);
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleSmall: React.FunctionComponent = () => <MenuToggle size="sm">Small toggle</MenuToggle>;
export const MenuToggleSmall: React.FunctionComponent = () => (
<MenuToggle aria-haspopup={false} size="sm">
Small toggle
</MenuToggle>
);
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,22 @@ import { MenuToggle, HelperText, HelperTextItem } from '@patternfly/react-core';

export const MenuToggleStatus: React.FunctionComponent = () => (
<Fragment>
<MenuToggle status="success">Success</MenuToggle>
<MenuToggle aria-haspopup={false} status="success">
Success
</MenuToggle>
<br />
<br />
<MenuToggle status="warning">Warning</MenuToggle>
<MenuToggle aria-haspopup={false} status="warning">
Warning
</MenuToggle>
<HelperText>
<HelperTextItem variant="warning">Warning text that explains the issue.</HelperTextItem>
</HelperText>
<br />
<br />
<MenuToggle status="danger">Danger</MenuToggle>
<MenuToggle aria-haspopup={false} status="danger">
Danger
</MenuToggle>
<HelperText>
<HelperTextItem variant="error">Danger text that explains the issue.</HelperTextItem>
</HelperText>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const MenuToggleTypeahead: React.FunctionComponent = () => {
};

return (
<MenuToggle variant="typeahead" isFullWidth aria-label="Typeahead menu toggle">
<MenuToggle aria-haspopup={false} variant="typeahead" isFullWidth aria-label="Typeahead menu toggle">
<TextInputGroup isPlain>
<TextInputGroupMain
value={inputValue}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ import { MenuToggle } from '@patternfly/react-core';

export const MenuToggleVariantStyles: React.FunctionComponent = () => (
<Fragment>
<MenuToggle variant="primary">Collapsed</MenuToggle>{' '}
<MenuToggle variant="primary" isExpanded>
<MenuToggle aria-haspopup={false} variant="primary">
Collapsed
</MenuToggle>{' '}
<MenuToggle aria-haspopup={false} variant="primary" isExpanded>
Expanded
</MenuToggle>{' '}
<MenuToggle variant="primary" isDisabled>
<MenuToggle aria-haspopup={false} variant="primary" isDisabled>
Disabled
</MenuToggle>
</Fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export const SelectBasic: React.FunctionComponent = () => {

const toggle = (toggleRef: React.Ref<MenuToggleElement>) => (
<MenuToggle
aria-haspopup="listbox"
ref={toggleRef}
onClick={onToggleClick}
isExpanded={isOpen}
Expand Down
Loading
Loading