-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTabs.js
40 lines (34 loc) · 1.15 KB
/
Tabs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React, {useState} from 'react'
import uuid from 'react-uuid'
// components
import TabHeadings from './TabHeadings';
const Tabs = ({tabs,headingComp,amount,tabCallBack,setActive = null}) => {
const [activeTab , setActiveTab] = useState(setActive ? setActive : tabs[0].key)
const Headings = tabs.map(tab => {
return({
heading:tab.heading,
key:tab.key,
amount:tab.amount
}
)
});
const headingChangeActive = (key) => {
setActiveTab(key);
if(tabCallBack){
tabCallBack(key);
}
}
return(
<div className="flex-1">
<TabHeadings headings={Headings} headingFunction={headingChangeActive} headingComp={headingComp} amount={amount ? amount : false} setActive={setActive} />
{tabs.map((tab, index) => {
return(
<div key={uuid()} className={`px-4 ${tab.key === activeTab ? 'opacity-100 visible' : 'opacity-0 hidden' }`} >
{tab.content}
</div>
)
})}
</div>
)
}
export default Tabs