Skip to content

Commit 79fe190

Browse files
committed
feat(Menu toggle): Added support for a adding styling for a menu toggle in a form
1 parent 911223a commit 79fe190

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

packages/react-core/src/components/MenuToggle/MenuToggle.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ export interface MenuToggleProps
4545
isFullHeight?: boolean;
4646
/** Flag indicating the toggle takes up the full width of its parent */
4747
isFullWidth?: boolean;
48+
/** @beta Flag indicating the toggle is placed inside a form */
49+
isInForm?: boolean;
4850
/** Flag indicating the toggle contains placeholder text */
4951
isPlaceholder?: boolean;
5052
/** @beta Flag indicating the toggle has circular styling. Can only be applied to plain toggles. */
@@ -83,6 +85,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
8385
isDisabled: false,
8486
isFullWidth: false,
8587
isFullHeight: false,
88+
isInForm: false,
8689
isPlaceholder: false,
8790
isCircle: false,
8891
size: 'default',
@@ -99,6 +102,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
99102
isDisabled,
100103
isFullHeight,
101104
isFullWidth,
105+
isInForm,
102106
isPlaceholder,
103107
isCircle,
104108
isSettings,
@@ -179,9 +183,10 @@ class MenuToggleBase extends Component<MenuToggleProps> {
179183
variant === 'secondary' && styles.modifiers.secondary,
180184
status && styles.modifiers[status],
181185
(isPlain || isPlainText) && styles.modifiers.plain,
182-
isPlainText && 'pf-m-text',
186+
isPlainText && styles.modifiers.text,
183187
isFullHeight && styles.modifiers.fullHeight,
184188
isFullWidth && styles.modifiers.fullWidth,
189+
isInForm && styles.modifiers.form,
185190
isDisabled && styles.modifiers.disabled,
186191
isPlaceholder && styles.modifiers.placeholder,
187192
isSettings && styles.modifiers.settings,

packages/react-core/src/components/MenuToggle/__tests__/MenuToggle.test.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ describe('Old Snapshot tests - remove when refactoring', () => {
5757

5858
const toggleVariants = ['default', 'plain', 'primary', 'plainText', 'secondary', 'typeahead'];
5959

60+
test(`Renders with classes ${styles.modifiers.plain} and ${styles.modifiers.text} when variant="plainText" is passed`, () => {
61+
render(<MenuToggle variant="plainText">Toggle</MenuToggle>);
62+
const toggle = screen.getByRole('button');
63+
expect(toggle).toHaveClass(styles.modifiers.plain);
64+
expect(toggle).toHaveClass(styles.modifiers.text);
65+
});
66+
6067
test(`Renders with class ${styles.modifiers.small} when size="sm" is passed`, () => {
6168
render(<MenuToggle size="sm">Toggle</MenuToggle>);
6269
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.small);
@@ -101,6 +108,16 @@ test('split toggle passes onClick', async () => {
101108
expect(mockClick).toHaveBeenCalled();
102109
});
103110

111+
test(`Renders with class ${styles.modifiers.form} when isInForm is passed`, () => {
112+
render(<MenuToggle isInForm>Toggle</MenuToggle>);
113+
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.form);
114+
});
115+
116+
test(`Does not render class ${styles.modifiers.form} when isInForm is false`, () => {
117+
render(<MenuToggle isInForm={false}>Toggle</MenuToggle>);
118+
expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.form);
119+
});
120+
104121
test(`Renders with class ${styles.modifiers.placeholder} when isPlaceholder is passed`, () => {
105122
render(<MenuToggle isPlaceholder>Toggle</MenuToggle>);
106123
expect(screen.getByRole('button')).toHaveClass(styles.modifiers.placeholder);

0 commit comments

Comments
 (0)