@@ -59,11 +59,11 @@ const meta: Meta<typeof Menu> = {
59
59
} ;
60
60
61
61
export default meta ;
62
- type Story = StoryObj < typeof Menu > ;
62
+ type MenuStory = StoryObj < typeof Menu > ;
63
63
64
64
const menuTypes : MenuType [ ] = [ "white" , "light" , "dark" , "black" ] ;
65
65
66
- export const DefaultStory : Story = ( ) => {
66
+ export const DefaultStory : MenuStory = ( ) => {
67
67
return (
68
68
< Box mb = { 150 } >
69
69
{ menuTypes . map ( ( menuType ) => (
@@ -102,7 +102,7 @@ export const DefaultStory: Story = () => {
102
102
DefaultStory . storyName = "Default" ;
103
103
DefaultStory . parameters = { chromatic : { disableSnapshot : true } } ;
104
104
105
- export const SelectedStory : Story = ( ) => {
105
+ export const SelectedStory : MenuStory = ( ) => {
106
106
return (
107
107
< Box mb = { 150 } >
108
108
{ menuTypes . map ( ( menuType ) => (
@@ -127,7 +127,7 @@ export const SelectedStory: Story = () => {
127
127
} ;
128
128
SelectedStory . storyName = "Selected" ;
129
129
130
- export const DividerStory : Story = ( ) => {
130
+ export const DividerStory : MenuStory = ( ) => {
131
131
return (
132
132
< Box mb = { 150 } >
133
133
{ menuTypes . map ( ( menuType ) => (
@@ -153,7 +153,7 @@ export const DividerStory: Story = () => {
153
153
DividerStory . storyName = "Divider" ;
154
154
DividerStory . parameters = { chromatic : { disableSnapshot : true } } ;
155
155
156
- export const LargeDividerStory : Story = ( ) => {
156
+ export const LargeDividerStory : MenuStory = ( ) => {
157
157
return (
158
158
< Box mb = { 150 } >
159
159
{ menuTypes . map ( ( menuType ) => (
@@ -179,7 +179,7 @@ export const LargeDividerStory: Story = () => {
179
179
LargeDividerStory . storyName = "Large Divider" ;
180
180
LargeDividerStory . parameters = { chromatic : { disableSnapshot : true } } ;
181
181
182
- export const SegmentTitleStory : Story = ( ) => {
182
+ export const SegmentTitleStory : MenuStory = ( ) => {
183
183
return (
184
184
< Box mb = { 150 } >
185
185
{ menuTypes . map ( ( menuType ) => (
@@ -206,7 +206,7 @@ export const SegmentTitleStory: Story = () => {
206
206
SegmentTitleStory . storyName = "Segment Title" ;
207
207
SegmentTitleStory . parameters = { chromatic : { disableSnapshot : true } } ;
208
208
209
- export const AlternateColourStory : Story = ( ) => {
209
+ export const AlternateColourStory : MenuStory = ( ) => {
210
210
return (
211
211
< Box mb = { 150 } >
212
212
{ menuTypes . map ( ( menuType ) => (
@@ -238,7 +238,7 @@ export const AlternateColourStory: Story = () => {
238
238
AlternateColourStory . storyName = "Alternate Colour" ;
239
239
AlternateColourStory . parameters = { chromatic : { disableSnapshot : true } } ;
240
240
241
- export const SubmenuOptionsStory : Story = ( ) => {
241
+ export const SubmenuOptionsStory : MenuStory = ( ) => {
242
242
return (
243
243
< Box mb = { 150 } >
244
244
{ menuTypes . map ( ( menuType ) => (
@@ -275,7 +275,7 @@ export const SubmenuOptionsStory: Story = () => {
275
275
SubmenuOptionsStory . storyName = "Submenu Options" ;
276
276
SubmenuOptionsStory . parameters = { chromatic : { disableSnapshot : true } } ;
277
277
278
- export const SubmenuDirectionLeftStory : Story = ( ) => {
278
+ export const SubmenuDirectionLeftStory : MenuStory = ( ) => {
279
279
return (
280
280
< Box mb = { 150 } >
281
281
< Menu >
@@ -297,7 +297,7 @@ export const SubmenuDirectionLeftStory: Story = () => {
297
297
SubmenuDirectionLeftStory . storyName = "Submenu Direction Left" ;
298
298
SubmenuDirectionLeftStory . parameters = { chromatic : { disableSnapshot : true } } ;
299
299
300
- export const WithIconStory : Story = ( ) => {
300
+ export const WithIconStory : MenuStory = ( ) => {
301
301
return (
302
302
< Box mb = { 150 } >
303
303
{ menuTypes . map ( ( menuType ) => (
@@ -330,7 +330,7 @@ export const WithIconStory: Story = () => {
330
330
WithIconStory . storyName = "With Icon" ;
331
331
WithIconStory . parameters = { chromatic : { disableSnapshot : true } } ;
332
332
333
- export const NoDropdownArrowOnSubmenuStory : Story = ( ) => {
333
+ export const NoDropdownArrowOnSubmenuStory : MenuStory = ( ) => {
334
334
return (
335
335
< Box minHeight = "150px" >
336
336
< Menu >
@@ -349,7 +349,7 @@ NoDropdownArrowOnSubmenuStory.parameters = {
349
349
chromatic : { disableSnapshot : true } ,
350
350
} ;
351
351
352
- export const SplitSubmenuIntoSeparateComponentStory : Story = ( ) => {
352
+ export const SplitSubmenuIntoSeparateComponentStory : MenuStory = ( ) => {
353
353
const MySubMenu = (
354
354
< MenuItem submenu = "Menu Item Three" >
355
355
< MenuItem href = "#" > Item Submenu One</ MenuItem >
@@ -372,7 +372,7 @@ SplitSubmenuIntoSeparateComponentStory.parameters = {
372
372
chromatic : { disableSnapshot : true } ,
373
373
} ;
374
374
375
- export const SubmenuIconAndTextAlignment : Story = ( ) => {
375
+ export const SubmenuIconAndTextAlignment : MenuStory = ( ) => {
376
376
return (
377
377
< Box minHeight = "250px" >
378
378
< Menu menuType = "dark" >
@@ -400,7 +400,7 @@ SubmenuIconAndTextAlignment.parameters = {
400
400
chromatic : { disableSnapshot : true } ,
401
401
} ;
402
402
403
- export const ScrollableSubmenuStory : Story = ( ) => {
403
+ export const ScrollableSubmenuStory : MenuStory = ( ) => {
404
404
return (
405
405
< Box mb = { 150 } >
406
406
{ menuTypes . map ( ( menuType ) => (
@@ -452,7 +452,7 @@ export const ScrollableSubmenuStory: Story = () => {
452
452
ScrollableSubmenuStory . storyName = "Scrollable Submenu" ;
453
453
ScrollableSubmenuStory . parameters = { chromatic : { disableSnapshot : true } } ;
454
454
455
- export const ScrollableSubmenuWithParent : Story = ( ) => {
455
+ export const ScrollableSubmenuWithParent : MenuStory = ( ) => {
456
456
const items = [
457
457
"apple" ,
458
458
"banana" ,
@@ -510,7 +510,7 @@ ScrollableSubmenuWithParent.parameters = {
510
510
chromatic : { disableSnapshot : true } ,
511
511
} ;
512
512
513
- export const SubmenuWithSearch : Story = ( ) => {
513
+ export const SubmenuWithSearch : MenuStory = ( ) => {
514
514
return (
515
515
< Box mb = { 150 } >
516
516
{ menuTypes . map ( ( menuType ) => (
@@ -547,7 +547,7 @@ export const SubmenuWithSearch: Story = () => {
547
547
SubmenuWithSearch . storyName = "Submenu with Search" ;
548
548
SubmenuWithSearch . parameters = { chromatic : { disableSnapshot : true } } ;
549
549
550
- export const TruncatedTitlesStory : Story = ( ) => {
550
+ export const TruncatedTitlesStory : MenuStory = ( ) => {
551
551
return (
552
552
< Box minHeight = "150px" >
553
553
< Menu >
@@ -568,7 +568,7 @@ export const TruncatedTitlesStory: Story = () => {
568
568
} ;
569
569
TruncatedTitlesStory . storyName = "Truncated Titles" ;
570
570
571
- export const ResponsiveCompositionStory : Story = ( ) => {
571
+ export const ResponsiveCompositionStory : MenuStory = ( ) => {
572
572
const isBelowBreakpoint1 = useMediaQuery ( "(max-width: 1200px)" ) ;
573
573
const isBelowBreakpoint2 = useMediaQuery ( "(max-width: 1000px)" ) ;
574
574
const isBelowBreakpoint3 = useMediaQuery ( "(max-width: 800px)" ) ;
@@ -652,7 +652,7 @@ ResponsiveCompositionStory.parameters = {
652
652
chromatic : { disableSnapshot : true } ,
653
653
} ;
654
654
655
- export const FullscreenViewStory : Story = ( ) => {
655
+ export const FullscreenViewStory : MenuStory = ( ) => {
656
656
const [ menuOpen , setMenuOpen ] = useState ( {
657
657
light : false ,
658
658
dark : false ,
@@ -737,50 +737,32 @@ export const FullscreenViewStory: Story = () => {
737
737
FullscreenViewStory . storyName = "Fullscreen View" ;
738
738
FullscreenViewStory . parameters = { chromatic : { disableSnapshot : true } } ;
739
739
740
- export const TruncationAndSubmenuWidth : Story = ( ) => {
741
- return (
742
- < Box mb = { 150 } >
743
- { menuTypes . map ( ( menuType ) => (
744
- < Box key = { menuType } >
745
- < Typography variant = "h4" textTransform = "capitalize" my = { 2 } >
746
- { menuType }
747
- </ Typography >
748
- < Menu menuType = { menuType } >
749
- < MenuItem
750
- maxWidth = "240px"
751
- submenuMaxWidth = "300px"
752
- submenu = "This is a very long menu item title"
753
- >
754
- < MenuItem href = "#" > Item One</ MenuItem >
755
- < MenuItem p = "2px 16px" >
756
- < Box minWidth = "268px" >
757
- < Search
758
- placeholder = "placeholder"
759
- variant = {
760
- [ "white" , "light" ] . includes ( menuType ) ? "default" : "dark"
761
- }
762
- defaultValue = ""
763
- />
764
- </ Box >
765
- </ MenuItem >
766
- < MenuSegmentTitle text = "segment title that should wrap when it will overflow" >
767
- < MenuItem href = "#" > Item Two</ MenuItem >
768
- < MenuItem href = "#" >
769
- This is a longer text string that will wrap when it will
770
- overflow the width of the submenu container
771
- </ MenuItem >
772
- </ MenuSegmentTitle >
773
- </ MenuItem >
774
- </ Menu >
775
- </ Box >
776
- ) ) }
777
- </ Box >
778
- ) ;
740
+ export const ControllingTheSubmenuWidth : MenuStory = {
741
+ render : ( ) => (
742
+ < Menu menuType = "black" >
743
+ < MenuItem submenuMaxWidth = "300px" submenu = "Open submenu with max width" >
744
+ < MenuItem href = "#" > Item One</ MenuItem >
745
+ < MenuItem href = "#" >
746
+ This is a longer text string. I will wrap instead of truncating!
747
+ </ MenuItem >
748
+ </ MenuItem >
749
+ < MenuItem submenuMinWidth = "300px" submenu = "Open submenu with min width" >
750
+ < MenuItem href = "#" > Item One</ MenuItem >
751
+ < MenuItem href = "#" > Item Two</ MenuItem >
752
+ < MenuItem href = "#" > Item Three</ MenuItem >
753
+ </ MenuItem >
754
+ </ Menu >
755
+ ) ,
756
+ decorators : [
757
+ ( Story ) => (
758
+ < div style = { { minHeight : "250px" } } >
759
+ < Story />
760
+ </ div >
761
+ ) ,
762
+ ] ,
763
+ parameters : { chromatic : { disableSnapshot : true } } ,
779
764
} ;
780
765
781
- TruncationAndSubmenuWidth . storyName = "Truncation and Submenu Width" ;
782
- TruncationAndSubmenuWidth . parameters = { chromatic : { disableSnapshot : true } } ;
783
-
784
766
export const MenuFullscreenWithSegmentStyling = ( ) => {
785
767
const [ isOpen , setIsOpen ] = useState ( false ) ;
786
768
const [ isSegmentedOpen , setIsSegmentedOpen ] = useState ( false ) ;
0 commit comments