Skip to content

Commit 4f96e17

Browse files
committed
fix: move fade functionality from CTabs to CTabContent
1 parent e23dd3f commit 4f96e17

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

src/CTabContent.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,37 @@ import React from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44
//component - CoreUI / CTabContent
5+
export const Context = React.createContext()
56

67
const CTabContent = props => {
78

89
const {
910
className,
1011
//
1112
innerRef,
13+
fade,
1214
...attributes
1315
} = props;
1416

1517
// render
1618
const classes = classNames('tab-content',className)
1719

1820
return (
19-
<div className={classes} {...attributes} ref={innerRef}/>
21+
<Context.Provider value={fade}>
22+
<div className={classes} {...attributes} ref={innerRef}/>
23+
</Context.Provider>
2024
)
2125
}
2226

2327
CTabContent.propTypes = {
2428
className: PropTypes.string,
2529
//
2630
innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),
27-
};
31+
fade: PropTypes.bool
32+
}
33+
34+
CTabContent.defaultProps = {
35+
fade: true
36+
}
2837

2938
export default CTabContent

src/CTabPane.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import classNames from 'classnames'
44
import CFade from './CFade'
55

66
import { Context } from './CTabs.js'
7+
import { Context as FadeContext } from './CTabContent.js'
78

89
//component - CoreUI / CTabPane
910
const getIndex = (el) => Array.from(el.parentNode.children).indexOf(el)
1011

1112
const getState = r => r.current.dataset.tab || getIndex(r.current)
1213

1314
const CTabPane = props => {
14-
1515
const {
1616
className,
1717
//
@@ -21,6 +21,7 @@ const CTabPane = props => {
2121
} = props
2222

2323
const context = useContext(Context)
24+
const fade = useContext(FadeContext)
2425
const act = (context || {}).active
2526
const ref = createRef()
2627
innerRef && innerRef(ref)
@@ -40,7 +41,7 @@ const CTabPane = props => {
4041
return (
4142
<CFade
4243
in={isActive}
43-
baseClass={context && context.fade ? 'fade' : ''}
44+
baseClass={fade ? 'fade' : ''}
4445
className={classes}
4546
{...attributes}
4647
innerRef={ref}
@@ -52,7 +53,7 @@ CTabPane.propTypes = {
5253
className: PropTypes.string,
5354
//
5455
innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.object]),
55-
active: PropTypes.bool
56-
};
56+
active: PropTypes.bool,
57+
}
5758

5859
export default CTabPane

src/CTabs.js

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ const CTabs = props => {
88
const {
99
children,
1010
activeTab,
11-
onActiveTabChange,
12-
fade
11+
onActiveTabChange
1312
} = props
1413

1514
const [active, setActive] = useState()
@@ -22,7 +21,7 @@ const CTabs = props => {
2221

2322
return (
2423
<React.Fragment>
25-
<Context.Provider value={{active, setActiveTab, fade}}>
24+
<Context.Provider value={{active, setActiveTab}}>
2625
{children}
2726
</Context.Provider>
2827
</React.Fragment>
@@ -33,12 +32,10 @@ CTabs.propTypes = {
3332
children: PropTypes.node,
3433
activeTab: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
3534
onActiveTabChange: PropTypes.func,
36-
fade: PropTypes.bool
37-
};
35+
}
3836

3937
CTabs.defaultProps = {
40-
activeTab: 0,
41-
fade: true
42-
};
38+
activeTab: 0
39+
}
4340

4441
export default CTabs

0 commit comments

Comments
 (0)