This repository was archived by the owner on Aug 31, 2022. It is now read-only.
File tree 2 files changed +31
-15
lines changed
2 files changed +31
-15
lines changed Original file line number Diff line number Diff line change @@ -12,11 +12,22 @@ const Template: Story<ComponentProps<typeof Tabs>> = (args) => <Tabs {...args} /
12
12
13
13
export const Basic = Template . bind ( { } ) ;
14
14
Basic . args = {
15
+ contentClassName : 'ui-overflow-hidden' ,
15
16
items : [
16
17
{
17
18
id : 'tab1' ,
18
19
label : 'tab12' ,
19
- content : < div > Tab 1</ div >
20
+ content : (
21
+ < div style = { { display : 'flex' } } >
22
+ Tab 1 < div > Tab 1</ div >
23
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
24
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
25
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
26
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
27
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
28
+ Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div > Tab 1 < div > Tab 1</ div >
29
+ </ div >
30
+ )
20
31
} ,
21
32
{
22
33
id : 'tab2' ,
@@ -30,6 +41,5 @@ Basic.args = {
30
41
disabled : true
31
42
}
32
43
] ,
33
- initial : 'tab1' ,
34
- contentClassName : 'ui-p-4'
44
+ initial : 'tab1'
35
45
} ;
Original file line number Diff line number Diff line change 1
1
import clsx from 'clsx' ;
2
- import React , { useMemo , useState } from 'react' ;
3
-
2
+ import React , { useCallback , useMemo , useState } from 'react' ;
4
3
import { Tab } from '../Tab/Tab' ;
5
4
6
5
export interface ITabItem {
@@ -28,21 +27,28 @@ export const Tabs: React.FC<TabsProps> = ({
28
27
} ) => {
29
28
const [ activeTab , setActiveTab ] = useState ( initial ) ;
30
29
31
- const selectTab = ( item : ITabItem ) => {
32
- if ( item . disabled ) return ;
33
-
34
- setActiveTab ( item . id ) ;
35
- onChange ?.( item . id ) ;
36
- } ;
30
+ const selectTab = useCallback (
31
+ ( item : ITabItem ) => {
32
+ if ( item . disabled ) return ;
33
+ setActiveTab ( item . id ) ;
34
+ onChange ?.( item . id ) ;
35
+ } ,
36
+ [ onChange ]
37
+ ) ;
37
38
38
39
const content = useMemo (
39
40
( ) => items . find ( ( item ) => item . id === activeTab ) ?. content ,
40
41
[ activeTab , items ]
41
42
) ;
42
43
43
44
return (
44
- < div className = { className } >
45
- < div className = 'ui-flex ui-items-center ui-flex-nowrap ui-overflow-auto' >
45
+ < >
46
+ < div
47
+ className = { clsx (
48
+ 'ui-flex ui-items-center ui-justify-center ui-flex-nowrap ui-overflow-auto' ,
49
+ className
50
+ ) }
51
+ >
46
52
{ items . map ( ( item ) => (
47
53
< Tab
48
54
key = { item . id }
@@ -54,7 +60,7 @@ export const Tabs: React.FC<TabsProps> = ({
54
60
/>
55
61
) ) }
56
62
</ div >
57
- < div className = { clsx ( contentClassName , 'dark:ui-text-white' ) } > { content } </ div >
58
- </ div >
63
+ < div className = { clsx ( 'dark:ui-text-white' , contentClassName ) } > { content } </ div >
64
+ </ >
59
65
) ;
60
66
} ;
You can’t perform that action at this time.
0 commit comments