Skip to content

Commit 8cfd715

Browse files
committed
fix(sidenav-toggle): fix button size, add className prop #562
1 parent bc087d9 commit 8cfd715

3 files changed

Lines changed: 33 additions & 6 deletions

File tree

src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
@use '@tedi-design-system/core/bootstrap-utility/breakpoints';
22

3+
$toggle-button-height: 3.5rem;
4+
$toggle-button-width: 3.5rem;
5+
36
.tedi-sidenav-toggle {
47
z-index: var(--z-index-sidenav);
5-
width: var(--button-sm-height);
6-
height: var(--button-sm-height);
8+
width: $toggle-button-width;
9+
height: $toggle-button-height;
710
margin: 0;
811
border-radius: 0;
912

src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.spec.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,19 @@ describe('SidenavToggle', () => {
107107
const button = screen.getByRole('button');
108108
expect(button.className).toContain('tedi-sidenav-toggle--open');
109109
});
110+
111+
test('applies custom className prop', () => {
112+
const customClass = 'my-special-toggle extra-class';
113+
114+
render(<SidenavToggle {...defaultProps} className={customClass} />);
115+
116+
const button = screen.getByRole('button');
117+
118+
expect(button).toHaveClass('my-special-toggle');
119+
expect(button).toHaveClass('extra-class');
120+
121+
expect(button).toHaveClass('tedi-sidenav-toggle');
122+
expect(button).toHaveClass('tedi-sidenav-toggle--mobile');
123+
expect(button).not.toHaveClass('tedi-sidenav-toggle--open');
124+
});
110125
});

src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export type SidenavToggleProps = {
3030
* Variant of toggle (mobile overlay or collapse control)
3131
*/
3232
variant?: SidenavToggleVariant;
33+
/**
34+
* Add custom class to override styles
35+
*/
36+
className?: string;
3337
};
3438

3539
export const SidenavToggle = ({
@@ -38,15 +42,20 @@ export const SidenavToggle = ({
3842
referenceRef,
3943
getReferenceProps = () => ({}),
4044
variant = 'mobile',
45+
className,
4146
}: SidenavToggleProps) => {
4247
const { getLabel } = useLabels();
4348

4449
const toggleLabel = getLabel('header.toggle', menuOpen);
4550

46-
const BEM = cn(styles['tedi-sidenav-toggle'], {
47-
[styles['tedi-sidenav-toggle--open']]: menuOpen,
48-
[styles[`tedi-sidenav-toggle--${variant}`]]: true,
49-
});
51+
const BEM = cn(
52+
styles['tedi-sidenav-toggle'],
53+
{
54+
[styles['tedi-sidenav-toggle--open']]: menuOpen,
55+
[styles[`tedi-sidenav-toggle--${variant}`]]: true,
56+
},
57+
className
58+
);
5059

5160
const Element = variant === 'collapse' ? FloatingButton : Button;
5261

0 commit comments

Comments
 (0)