@breakaway/react-core
Version:
This library provides a set of common React components for use with the PatternFly reference implementation.
228 lines (169 loc) • 5.28 kB
Markdown
---
id: Menu toggle
section: components
cssPrefix: pf-c-menu-toggle
propComponents: ['MenuToggle', 'MenuToggleAction', 'MenuToggleCheckbox', 'SplitButtonOptions']
---
import './MenuToggle.css'
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
<MenuToggle>Collapsed</MenuToggle>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
<MenuToggle isExpanded>Expanded</MenuToggle>;
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
<MenuToggle isDisabled>Disabled</MenuToggle>
```
```ts
import React from 'react';
import { MenuToggle, Badge } from '@patternfly/react-core';
<MenuToggle badge={<Badge>4 selected</Badge>}>Count</MenuToggle>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
<React.Fragment>
<MenuToggle variant="primary">Collapsed</MenuToggle>{' '}
<MenuToggle variant="primary" icon={<CogIcon />}>
Icon
</MenuToggle>{' '}
<MenuToggle variant="primary" isExpanded>
Expanded
</MenuToggle>{' '}
<MenuToggle variant="primary" isDisabled>
Disabled
</MenuToggle>
</React.Fragment>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
<React.Fragment>
<MenuToggle variant="secondary">Collapsed</MenuToggle>{' '}
<MenuToggle variant="secondary" icon={<CogIcon />}>
Icon
</MenuToggle>{' '}
<MenuToggle variant="secondary" isExpanded>
Expanded
</MenuToggle>{' '}
<MenuToggle variant="secondary" isDisabled>
Disabled
</MenuToggle>
</React.Fragment>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
<React.Fragment>
<MenuToggle variant="plain" aria-label="plain kebab">
<EllipsisVIcon />
</MenuToggle>
<MenuToggle variant="plain" isExpanded aria-label="plain expanded kebab">
<EllipsisVIcon />
</MenuToggle>
<MenuToggle variant="plain" isDisabled aria-label="disabled kebab">
<EllipsisVIcon />
</MenuToggle>
</React.Fragment>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
<React.Fragment>
<MenuToggle variant="plainText" isDisabled aria-label="Disabled plain menu toggle">
Disabled
</MenuToggle>
<MenuToggle variant="plainText" aria-label="Plain menu toggle">
Custom text
</MenuToggle>
<MenuToggle variant="plainText" isExpanded aria-label="Expanded plain menu toggle">
Custom text (expanded)
</MenuToggle>
</React.Fragment>
```
### Split button (checkbox)
```ts file='MenuToggleSplitButtonCheckbox.tsx'
```
```ts file='MenuToggleSplitButtonCheckboxWithText.tsx'
```
```ts file='MenuToggleSplitButtonCheckboxPrimary.tsx'
```
```ts file='MenuToggleSplitButtonCheckboxSecondary.tsx'
```
```ts file='MenuToggleSplitButtonAction.tsx'
```
```ts file='MenuToggleSplitButtonActionPrimary.tsx'
```
```ts file='MenuToggleSplitButtonActionSecondary.tsx'
```
```ts
import React from 'react';
import { MenuToggle, Avatar } from '@patternfly/react-core';
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
<React.Fragment>
<MenuToggle icon={<CogIcon />} variant="secondary">Icon</MenuToggle>{' '}
<MenuToggle icon={<CogIcon />} variant="secondary" isDisabled>Icon</MenuToggle>
</React.Fragment>
```
```ts
import React from 'react';
import { MenuToggle, Avatar } from '@patternfly/react-core';
import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
<React.Fragment>
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />}>Ned Username</MenuToggle>{' '}
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />} isExpanded>Ned Username</MenuToggle>{' '}
<MenuToggle icon={<Avatar src={imgAvatar} alt="avatar" />} isDisabled>Ned Username</MenuToggle>
</React.Fragment>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
<div style={{ height: "80px" }}>
<MenuToggle isFullHeight aria-label="Full height menu toggle">
Full height
</MenuToggle>
</div>
```
```ts
import React from 'react';
import { MenuToggle } from '@patternfly/react-core';
const fullWidth: React.FunctionComponent = () => {
return (
<MenuToggle isFullWidth aria-label="Full width menu toggle" >
Full width
</MenuToggle>
);
}
```